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 記憶體鍵值資料庫,可以儲存鍵和五種不同型別的值之間的對映。鍵的型別只能為字串,值支援五種資料型別...