Redis學習筆記2 - 通用key操作命令

Redis命名大全地址:https://redis.io/commands

1. 3個通配符 * ? [] 查詢當前有哪些keys,command: keys * 

*   - 通多個字符,例:查找key=mysite, keys my*(表示my字符開頭的keys)

? - 通配單個字符,例:查找key=mysite, 可以使用:keys my?ite

[]  -  通配中括號中的某一字符,例:查找key=mysite, 可以使用:keys my[rst]ite 

2. 隨機返回key, command: randomkey

3. 判斷key是否存在,command: exists mysite

4. 重命名key, command: rename mysite mysit # renamenx: 判斷修改的名稱不存在時才修改 

5. 刪除key, command: del mysite

6. 移動key,將key=mysite移動到1號庫,command: move mysite 1 # redis默認有16個庫,分別是0,1,2,3....15進行編號,通過select index進行切換

7. 生命週期:

7.1. 查詢key的生命週期,command: ttl mysite # 返回值單位爲秒,如果返回-1表示永不過期,redis 2.8以後返回值爲-2表示key不存在。pttl 生命週期單位爲毫秒

7.2. 設置key的生命週期, command: expire mysite  100 # 100單位是秒。pexpire 設置生命週期單位爲毫秒

7.3. 設置key不過期, command: persist mysite

8. 清空所有緩存,command: flushdb

-------------------------------------------5大數據結構之一: string常用命令-------------------------------------------

9. set 命令設置key時指定[ex | px], [nx | xx]的情況,command: set mysite www.baidu.com ex 100 nx

# ex - 表示key生命週期單位爲秒,px- 表示毫秒

# nx - 表示key不存在時進行設置,xx - 表示key存在時才進行設置(也就是等同於修改操作)

補充:

# mset 命令, command: mset key1 key1value key2 key2value key3 key3value # mget同理列出keys即可取得相應keys的value

# setrange 命令,command: setrange mysite 7 ??? # 從第幾個字符開始,替換多少個字段由???的長度確定。getrange myste 1 4 # 從下標1開始,4結束(如果結尾是負數則倒數)

10. append 追加字符,command: append mysite test 

11. getset 命令,command: getset mysite www.taobao.com # 取得上一次的值,並同時設置新址

12. incr 和 dec 增加和減少值,command: incr age # key=age, incrby 5和decrby可以指定增加和減少的粒度,例如一次增加10(command: incrby age 10), 以及按浮點數進行增加(command: incrbyfloat age 0.5).

13. setbit(getbit) 命令,大小寫字母轉換,command: setbit key 2 [0 | 1]

 

-------------------------------------------5大數據結構之二: list常用命令-------------------------------------------

14. lpush(rpush) 往list左邊或右邊追加值,command: lpush answer a b c d a b c d

15. lrange 取出list範圍,command: lrange answer 0 3 # 從右邊開始計數,將結尾的計數值3換成負數即可

16. lpop(rpop) 取出list並彈出相應值,command: lpop answer

17. lrem 從鏈表中刪除值, command: lrem answer 1 c # 數據1表示刪除的個數,c表示刪除值

從左開始刪除鏈表中2個值爲d的item, command: lrem answer 2 d

從右開始刪除鏈表中1個值爲b的item, comand: lrem answer -1 b

18. ltrim 剪切,command: ltrim chars 3 -1

19. lindex 獲取特定索引的值, command: lindex chars 2

20. llen 查看鏈表的長度,command: llen chars

21. linsert 在鏈表中找到某個值並在before or after插入特定值, command: linsert chars before d c  # before / after

22. rpoplpush 將鏈表的值取出放到另一鏈表的左(或右)邊,command: rpoplpush tasks working

 應用場景:後臺任務在鏈表中pop時,將值暫時存儲到bak表,如果任務執行成功,刪除bak表的值,如果失敗再push回去再次執行。

23. brpop(blpop) 適用聊天場景

-------------------------------------------5大數據結構之三: set常用命令-------------------------------------------

24. sadd 添加元素,command: sadd week Sundy Monday Tuesday Wednesday # smembers key 查看集合元素

25. srem 刪除元素,command: srem week Monday

26. spom 獲取並刪除相應的元素, command: spop week

27. srandmember 隨機取出一個元素, command: srandmember week

28. sismember 返回給定的值在集合中是否存在,command: sismember week Tuesday

29. scard 查看總共有多少個元素, command: scard week

30. smove 在集合之間移動元素,command: smove upper lower B 

31. sinter 取交集, command: sinter key1 key2 key3   # sinterstore 存儲取到的結果

 

 

32. sunion 取並集,command: sunion key1 key2 key3

33. sdiff 取差集, command: sdiff key1 key2 key3 # key1 - (key2 + key3 + ...)

 

-------------------------------------------5大數據結構之四:sorted set常用命令-------------------------------------------

34. zadd 添加元素,command: zadd key score1 value1 score2 value2 ... # 

35.  zrange 通過指定範圍查詢,command: zrange key startSortNumber endSortNumber [withscores] # 起始是指排名的名次,並不是score的值

36. zrangebyscore 通過指定範圍的score值進行查詢,

command: zrangebyscore key startScore endScore

 

command: zrangebyscore key startScore endScore limit count1 count2 # limit參數,count1表示偏移量,即跳過多少個,count2表示取多少元素

37. zrank(zrevrank降序排列) 查詢元素的排序,command: zrank key value

-------------------------------------------5大數據結構之五:hash常用命令-------------------------------------------

38. hset(hmset) 設置hash值,command: hset key field1 value1 # hmset key field1 value1 field2 value2 field3 value3 ...

39. hget(hmget)獲取指定的屬性值(hash值),command: hget key field1 # hgetall key

40. hgetall 獲取指定的屬性值(hash值),command: hget key field1 # hgetall key

41. hdel 刪除指定屬性,command: hdel key field

42. hlen 查詢特定key有幾個屬性,command: hlen key

43. hexists 查詢特定屬性是否存在, command: hexists key field

44. hincrby 增加key中指定屬性的值,command: hincrby key field value指定hincrbyfloat參數將增加浮點數的方式增加值 

 

45. hkeys(hvals) 查看key中所有的屬性(值),command: hkeys key # kvals key

 

 

至此,已列舉完redis的各種數據結構的常用命令,加深印象。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章