redis中的物件

2021-08-15 10:15:23 字數 1490 閱讀 4930

1:redis中是通過物件來儲存鍵和鍵值,其中物件是由sds/鍊錶/字典/跳躍表/整數合集/壓縮列表 這些基本

型別組成,

2:redis 對應基於引用計數的記憶體**機制,當物件的引用計數為零時,物件會比**。通過引用計數可以

實現物件共享,物件共享主要是多個資料庫鍵可以共享乙個物件來節約記憶體。

3:redis 物件帶有訪問時間記錄資訊.在伺服器採用了maxmemory的情況下,長時間沒有被用到的鍵會被優先刪除

redis中使用redisobject 表示乙個物件

typedef struct redisobject robj;

其中的type為

/* object types */

#define redis_string 0

#define redis_list 1

#define redis_set 2

#define redis_zset 3

#define redis_hash 4

#define redis_hash_zipmap 9

#define redis_list_ziplist 10

#define redis_set_intset 11

#define redis_zset_ziplist 12

#define redis_hash_ziplist 13

其中的endoding 為

#define redis_encoding_raw 0 /* raw representation */

#define redis_encoding_int 1 /* encoded as integer */

#define redis_encoding_zipmap 2 /* encoded as zipmap */

#define redis_encoding_ht 3 /* encoded as a hash table */

例如下面這個函式可以增加物件的引用計數

void incrrefcount(robj *o)

對redis 資料庫來說鍵總是sds型別,而鍵值可以問type中的任何一種,因此當我們用type命令返回

的是鍵值物件的型別。

列表物件的主要操作命令為:lpush/rpush/lpop/rpop/lindex/linsert/lrem/ltrim/lset

雜湊物件的主要命令為:hset/hget/hexists/hdel/hlen/hgetall

集合物件的主要命令為:sadd/scard/sismember/smembers/srandmember/spop/srem

有序物件的主要命令為:zadd/zcard/zcount/zrange/zrevrange/zrank/zrevrank/zrem/zcore

還有一類命令是對所有型別都使用的。例如:del/expire/rename/type/object等

redis 會共享0~9999的字串物件。

Redis物件 Redis物件系統簡介

最新 redis記憶體 三個重要的緩衝區 最新 redis記憶體 記憶體消耗 記憶體都去哪了?最新 redis持久化 如何選擇合適的持久化方式 最新 redis持久化 aof日誌 之前幾篇文章,簡單介紹 redis用到的所有主要資料結構,簡單動態字串 sds 雙端鍊錶 字典 壓縮列表 整數集合 跳躍...

Redis 物件 雜湊物件

每種型別的變數至少使用了兩種不同的編碼 1 五種物件的底層編碼 字串型別物件 redis encoding int redis encoding embstr redis encoding raw 列表型別的物件 redis encoding ziplist redis encoding linke...

Redis 物件的使用

redis是乙個開源的使用ansi c語言編寫 遵守bsd協議 支援網路 可基於記憶體亦可持久化的日誌型 key value資料庫,並提供多種語言的api。redis 是速度非常快的非關係型 nosql 記憶體鍵值資料庫,可以儲存鍵和五種不同型別的值之間的對映。鍵的型別只能為字串,值支援五種資料型別...