1. 程式人生 > 實用技巧 >linux_redis常用資料型別操作

linux_redis常用資料型別操作

1.string型別

set   設定key
get   獲取key
append  追加string
mset   設定多個鍵值對
mget   獲取多個鍵值對
del  刪除key
incr  遞增+1
decr  遞減-1

例如:set name zhangsan
127.0.0.1:6379> set name 'tt'   #設定key
OK
127.0.0.1:6379> get name    #獲取value
"tt"
127.0.0.1:6379> set name 'tiger'  #覆蓋key
OK
127.0.0.1:6379> get name    #
獲取value "tiger" 127.0.0.1:6379> append name ' dsb'   #追加key的string (integer) 10 127.0.0.1:6379> get name  #獲取value "tiger dsb" 127.0.0.1:6379> mset user1 'alex' user2 'xiaopeiqi'    #設定多個鍵值對 OK 127.0.0.1:6379> get user1    #獲取value "alex" 127.0.0.1:6379> get user2    #獲取value "xiaopeiqi" 127.0.0.1:6379> keys *      #
找到所有key 1) "user2" 2) "name" 3) "user1" 127.0.0.1:6379> mget user1 user2 name #獲取多個value 1) "alex" 2) "xiaopeiqi" 3) "tiger dsb" 127.0.0.1:6379> del name        #刪除key (integer) 1 127.0.0.1:6379> get name        #獲取不存在的value,為nil (nil) 127.0.0.1:6379> set num 10    #string型別實際上不僅僅包括字串型別,還包括整型,浮點型。redis可對整個字串或字串一部分進行操作,而對於整型/浮點型可進行自增、自減操作。
OK     127.0.0.1:6379> get num "10" 127.0.0.1:6379> incr num    #給num string 加一 INCR 命令將字串值解析成整型,將其加一,最後將結果儲存為新的字串值,可以用作計數器 (integer) 11 127.0.0.1:6379> get num   "11" 127.0.0.1:6379> decr num      #遞減1 (integer) 10 127.0.0.1:6379> decr num    #遞減1 (integer) 9 127.0.0.1:6379> get num "9"

2.list型別

lpush         從列表左邊插
rpush         從列表右邊插
lrange          獲取一定長度的元素  lrange key  start stop
ltrim               擷取一定長度列表
lpop                 刪除最左邊一個元素
rpop                     刪除最右邊一個元素
lpushx/rpushx                key存在則新增值,不存在不處理
lpush duilie 'alex' 'peiqi' 'ritian'  #新建一個duilie,從左邊放入三個元素

llen duilie  #檢視duilie長度

lrange duilie 0 -1  #檢視duilie所有元素

rpush duilie 'tiger'   #從右邊插入tiger

lpushx duilie2  'dsb'  #key存在則新增 dsb元素,key不存在則不作處理

ltrim duilie 0 2  #擷取佇列的值,從索引0取到2,刪除其餘的元素

lpop #刪除左邊的第一個
rpop #刪除右邊的第一個

3.sets集合型別

redis的集合,是一種無序的集合,集合中的元素沒有先後順序。

集合相關的操作也很豐富,如新增新元素、刪除已有元素、取交集、取並集、取差集等。我們來看例子:

sadd/srem   新增/刪除 元素
sismember   判斷是否為set的一個元素
smembers    返回集合所有的成員
sdiff             返回一個集合和其他集合的差異
sinter           返回幾個集合的交集
sunion          返回幾個集合的並集
sadd zoo  wupeiqi yuanhao  #新增集合,有三個元素,不加引號就當做字串處理

smembers zoo  #檢視集合zoo成員

srem zoo  wupeiqi #刪除zoo裡面的alex

sismember zoo wupeiqi  #返回改是否是zoo的成員資訊,不存在返回0,存在返回1

sadd zoo wupeiqi   #再把wupeiqi加入zoo

smembers zoo  #檢視zoo成員

sadd zoo2 wupeiqi mjj #新增新集合zoo2

sdiff zoo zoo2 #找出集合zoo中有的,而zoo2中沒有的元素

sdiff zoo2  zoo  #找出zoo2中有,而zoo沒有的元素

sinter zoo zoo1   #找出zoo和zoo1的交集,都有的元素

sunion  zoo zoo1  #找出zoo和zoo1的並集,所有的不重複的元素

4.雜湊資料結構

鍵key:{
       域field:值value
}
- 設定單個屬性

  > hset key field value

- 例1:設定鍵 `user`的屬性`name`為`xiaohong`

  > hset user name xiaohong

- 設定多個屬性

  > hmset key field1 value1 field2 value2 ...

- 例2:設定鍵`u2`的屬性`name`為`xiaohong`、屬性`age`為`11`

  > hmset u2 name xiaohong age 11

- 獲取指定鍵所有的屬性

  > hkeys key

- 例3:獲取鍵u2的所有屬性

  > hkeys u2

- 獲取⼀個屬性的值

  > hget key field

- 例4:獲取鍵`u2`屬性`name`的值

  > hget u2 name

- 獲取多個屬性的值

  > hmget key field1 field2 ...

- 例5:獲取鍵`u2`屬性`name`、`age`的值

  > hmget u2 name age



- 獲取所有屬性的值

  > hvals key

- 例6:獲取鍵`u2`所有屬性的值

  > hvals u2

- 刪除屬性,屬性對應的值會被⼀起刪除

  > hdel key field1 field2 ...

- 例7:刪除鍵`u2`的屬性`age`

  > hdel u2 age

5.有序集合型別