redis學習入門
Tags: redis
redis中的資料結構
關于keys的幾條規則 (沒有限制中的限制)
- 太長的鍵值不是個好主意,例如1024位元組的鍵值就不是個好注意,不僅消耗記憶體,而且在資料中查找這類鍵值的計算成本很高。
- 太短的鍵值通常也不是好主意,使用“u:1000:pwd”代替“user:1000:password”沒有什麼問題,但後者更易閱讀。根據業務需求,如果預計此類keys的資料量很大,使用簡化的第一種方案也是不錯的選擇。
- 最好堅持一種模式。例如:”object-type🆔field”就是個不錯的注意,像這樣”user:1000:password”。我喜歡對多單詞的字段名中加上一個點,就像這樣:”commentreply.to”。
- 字元串(strings)
普通的k-v鍵值對
{
key1:value,
key2:value,
....
}
- 清單(List)
這種資料結構基于Linked List實作,常用來做隊列
優點:插入時複雜度相同
缺點:按索引讀取慢
{
key1:[value1,value2,value3,...], //json格式隻能使用數組方式表示
key2:[value1,value2,value3,...],
...
}
- 散列(hash)
嵌套的k-v對
{
key1:{
key1:value1,
key2:value2,
...
},
key2:{
key1:value1,
key2:value2,
...
},
...
}
- 集合(sets)
value是集合類型,元素值都是唯一的,redis會自動去重,所有的value是無序排列的
{
key1:[value1,value3,value2], //集合裡面的元素不能重複
key2:[value3,value2,value1],
...
}
- 有序集合(Sorted sets)
value是集合類型,元素值都是唯一的,redis會自動去重,所有的value是有序排列的
{
key1:[value1,value2,value3], //集合裡面的元素不能重複,且有序
key2:[value1,value3,value3],
...
}