標籤:
1.1 資料類型
Redis常用五種資料類型:string, hash, list, set, zset(sorted set).
Redis內部使用一個redisObject對象來表示所有的key和value, redisObject最主要的資訊如所示
type代表 一個value對象具體是何種資料類型,encoding是不同資料類型在redis內部的儲存方式,比如:type=string代表value儲存的 是一個一般字元串,那麼對應的encoding可以是raw或者是int,如果是int則代表實際redis內部是按數值型類儲存和表示這個字串的,當 然前提是這個字串本身可以用數值表示,比如:"123" "456"這樣的字串。
開啟redis源碼 scr/sds.h 查看String類型的結構 (注;以下都是redis-3.0的源碼)
Type 為對應的5中資料類型,已經定義好了
1.1.1 String類型
- 1. String資料類型
String是最簡單的類型,一個key對應一個value,String類型的資料最大1G。String類型的值可以被視作integer,從而可以讓“INCR”命令族操作(incrby、decr、decrby),這種情況下,該integer的值限制在64位有符號數。在list、set和zset中包含的獨立的元素類型都是Redis String類型。
- 2. String資料結構
開啟redis源碼 scr/sds.h 查看String類型的結構
len: 標記char[]的長度, 有點類似我們C#中List的length一個意思。
free: 標記char[]中未使用的元素個數,就是有幾個空坑的意思。
buf[]:存放元素的坑,不一定和元素的實際個數相等,比如前面說的cnblogs。也有可能是[c][n][b][l][o][g][s][/0][][][]。
- 3. String資料類型常用命令
Resids相關命令都可以參考網站資訊http://doc.redisfans.com/
Redis 資料類型總結—String