9、Redis的資料類型
1)String類型及操作
String是最簡單的類型,一個Key對應一個Value,String類型是二進位安全。Redis的String可以包含任何資料,比如:jpg圖片或者序列化的對象。
Set:設定key對應的值為String類型的value
例如:我們添加一個name=lizh的索引值對
| 127.0.0.1:6379>set name lizh OK |
Setnx:設定key對應的值為String類型的value,如果key已經存在,不更新資料且返回0;如果key不存在,則插入資料且返回1。nx是not exist的意思。
| 127.0.0.1:6379> setnx name llll (integer) 0 |
Setex:設定key對應的值為String類型的value,並指定此索引值對的有效期間
例如:添加一個haircolor=red的索引值對,並指定有效期間為10秒。
| setex haircolor 10 red OK get haircolor “red” 10秒後擷取資料 get haircolor (nil) |
Setrange:設定指定key的value值的子字串,類似於替換字串
例如:將xiaoli的126郵箱替換為gmail郵箱
mset:一次設定多個key的值,成功返回OK表示所有的值都設定了,失敗返回0表示沒有任何值被設定。
msetnx:一次設定多個key的值,成功返回OK表示所有的值都設定了,失敗返回0表示沒有任何值被設定,但是不會覆蓋已經存在的key
get:擷取key對應的String值,如果key不存在返回nil
getset:設定key的值,並返回key的舊值
getrange:擷取key的value值的子字串
mget:一次擷取多個key的值,如果對應key不存在,則對應返回nil
incr:對key的值做加加操作,並返回新的值
incrby:同incr類似,加指定值,key不存在時候會設定key,並認為原來的值為0
decr:對key的值做減減操作
decrby:同decr類似,減指定值。
append:給指定key的字串追加value,返回新字串值的長度
strlen:取指定key的value值的長度
2)hash類型
hash類型及操作
Redis hash是一個string類型的field和value的映射表,它的添加刪除操作都是0(1)(平均), hash特別適合用於儲存物件。相較於將對象的每個欄位存成單個string類型。將一個對象存在hash類型中會佔用更少的記憶體,並且可以更方便的存取整個對象。
hset:設定hash field為指定值,如果key不存在,則先建立。
其中user:001可以看做一張表的記錄
hsetnx:設定hash field為指定值,如果key不存在,則先建立。如果存在則返回0。
hmset:同時設定hash的多個field
hincrby:指定的hash field加上給定值
hexists:測試指定field是否存在
hlen:返回指定hash的field數量
hdel:刪除指定hash的field
hkeys:返回hash的所有field
hvals:返回hash的所有value
hgetall:擷取某個hash中全部的field及value