二、redis物件和編碼
三、其他
四、小結
五、參考
typedef struct redisobject robj;
字段
含義相關命令
type
物件型別
type keyname
encoding
物件編碼
object encoding keyname
refcount
物件引用計數
object refcount keyname
lru物件最後訪問時間
object idletime keyname
object encoding keyname
127.0.0.1:6379> object encoding name
"embstr"
基礎型別
編碼型別
object encoding命令輸出
轉換條件
string
整數 sds embstr
int/embstr/raw
滿足整數則使用整數,否則使用embstr(長度小於39,分配和釋放次數減少)/sds raw(大於39)
list
ziplist 雙向鍊錶
ziplist/linkedlist
字串元素小與64並且元素小與512個使用ziplist
hash
ziplist 字典
ziplist/hashtable
所有鍵值長度小於64且鍵值對少於512使用ziplist
set整數集合 字典
intset/hashtable
全為整數且不超過512個則使用整數集合,反之使用字典(value為null)
zset
ziplist 跳表
ziplist/skiplist
集合元素長度均小於64且元素少於128時使用ziplist,反之使用跳表
list-max-ziplist-value
list-max-ziplist-entries
hash-max-ziplist-value
hash-max-ziplist-entries
set-max-intset-entries
zset-max-ziplist-value
zset-max-ziplist-entries
Redis學習 (14)Redis 事務
redis 事務可以一次執行多個命令,並且帶有以下兩個重要的保證 乙個事務從開始到執行會經歷以下三個階段 以下是乙個事務的例子,它先以multi開始乙個事務,然後將多個命令入隊到事務中,最後由exec命令觸發事務,一併執行事務中的所有命令 redis 127.0.0.1 6379 multi okr...
14 Redis 分布式鎖
有這樣乙個情境,執行緒a和執行緒b都共享某個變數x 分布式鎖可以基於很多種方式實現,比如zookeeper redis 不管哪種方式,他的基本原理是不變的 用乙個狀態值表示鎖,對鎖的占用和釋放通過狀態值來標識 redis為單程序單執行緒模式,採用佇列模式將併發訪問變成序列訪問,且多客戶端對redis...
14 Redis如何處理客戶端連線
redis通過在tcp埠上進行監聽,或者unix socket 如果啟用 的方式來接受客戶端的連線。當乙個新的客戶端連線被接受執行以下操作 如果它因為當前已經接受了最大數量的客戶端,無法接受當前的客戶端,redis將嘗試傳送乙個錯誤給客戶端以便讓其意識到這種情況,並且立即關閉連線。即使連線被redi...