字符串類型最大的特色就是單key單value。redis
string是redis最基本的類型,並且string類型是二進制安全的。c#
redis的string能夠包含任何數據。好比jpg圖片或者序列化的對象。從內部實現來看其實string能夠看做byte數組,最大上限是1G字節 api
下面是string類型的定義:數組
struct sdshdr {
long len;
long free;
char buf[];
};
buf是個char數組用於存貯實際的字符串內容。其實char和c#中的byte是等價的,都是一個字節
len是buf數組的長度,free是數組中剩餘可用字節數。
由此能夠理解爲何string類型是二進制安全的了。由於它本質上就是個byte數組。固然能夠包含任何數據了。
另外string類型能夠被部分命令按int處理.好比incr等命令,
redis的其餘類型像list,set,sorted set ,hash它們包含的元素與都只能是string類型。
若是隻用string類型,redis就能夠被看做加上持久化特性的memcached.固然redis對string類型的操做比memcached多不少啊。安全
【格式】set key value 【做用】設置key和value,若是存在能夠覆蓋 例如: $: set k1 v1
【格式】get key 【做用】獲取某個key的value 例如: $: set k1 v1 $: get k1 #返回v1
【格式】del key 【做用】刪除某個key 例如: $: set k1 v1 $: del k1
【格式】append key value 【做用】對value追加內容 例如: $:set k2 v2 $:append k2 v2 $:get k2 #返回的value=v2v2
【格式】strlen key 【做用】獲取key對應value的長度 例如: $: set k2 v2 v2 $: strlen k2 # 4
【格式】incr key 【做用】對數字類型的value+1操做,若是不是數字類型的報錯 例如: $: set num 1 $: incr num $: get num # 返回2
【格式】decr key 【做用】對數字類型的value-1操做,若是不是數字類型的報錯 例如: $: set num 10 $: decr num $: get num # 返回9
【格式】incrby key n 【做用】對數字類型的value+n操做,若是不是數字類型的報錯 例如: $: set num 1 $: incr num 11 $: get num # 返回12
【格式】decrby key m 【做用】對數字類型的value-m操做,若是不是數字類型的報錯 例如: $: set num 100 $: decr num 45 $: get num # 返回55
【格式】getrange key begin end 【做用】截取範圍內的字符串[begin,end] 例如: $:set k2 v2v2 $:getrange k2 1 2 #則返回2v
【格式】setrange key index newvalue 【做用】從index處用newvalue覆蓋舊的value 例如: $:set k2 v2v2 $:set k2 1 xx $:get k2 #返回vxx2
【格式】setex key time value 【做用】設置key而且設置過時時間,單位爲秒 例如: $: setex k3 100 v3 $: ttl k3 # 使用ttl key來查看剩餘過時時間
【格式】setnx key value 【做用】若是key不存在,設置成功,不然設置失敗 例如: $:del k3 $:setnx k3 v3_new #設置成功 $:setnx k3 vvv3 #設置失敗
【格式】mget key1 key2 key3 【做用】若是key不存在,設置成功,不然設置失敗 例如: $: set k1 v1 $: set k2 v2 $: set k3 v3 $: mget k1 k2 k3 k4 #key不存在直接返回(nil)
【格式】mset key1 value1 key2 value2 ... 【做用】同set key存在則覆蓋 例如: $: mset k1 v11 k2 v22 k3 v33 #能夠對上面mget的例子進行優化 $: mget k1 k2 k3 k4 #查看了k1,k2,k3,k4的值
【格式】msetnx key1 value1 key2 value2 key3 value3 ... 【做用】同setnx,只有key都不存在才成功 例如: $: del k1 $: del k2 $: del k3 $: del k4 $: msetnx k1 kk1 k2 kk2 k3 kk3 # 成功 $: msetnx k3 vv3 k4 vv4 #失敗,k3已經存在了, $: get k4 # 返回 (nil)
網址: http://redisdoc.com/app