Redis的資料型別及使用場景
阿新 • • 發佈:2020-07-15
1.redis 的資料型別
- String 字串
- Hash 雜湊
- List 列表
- Set 集合
- ZSet(Sorted Set) 有序集合
2.使用場景
2.1 String
-
使用者token
可以用redis來記錄使用者token並設定過期時間
小龍測試:0>set 1001 tokenslkdjflksdjflkdsj ex 600 "OK" 小龍測試:0>get 1001 "tokenslkdjflksdjflkdsj" 小龍測試:0>TTL 1001 "592"
-
主鍵記錄
分散式的服務可以通過redis來記錄主鍵的最大值
小龍測試:0>set t_user 1 "OK" 小龍測試:0>incrby t_user 1 "2" 小龍測試:0>incrby t_user 1 "3" 小龍測試:0>get t_user "3"
-
ip訪問
可以通過redis記錄ip訪問次數進行黑名單的限制
小龍測試:0>set 127.0.0.1 1 ex 600 "OK" 小龍測試:0>incrby 127.0.0.1 1 "2" 小龍測試:0>ttl 127.0.0.1 "556" 小龍測試:0>get 127.0.0.1 "2"
2.2 Hash
-
使用者資訊等物件的儲存
小龍測試:0>HSET zhucw name "zhuchunwang" "1" 小龍測試:0>HSET zhucw age "30" "0" 小龍測試:0>HSET zhucw id "100" "1" 小龍測試:0>HGET zhucw "ERR wrong number of arguments for 'hget' command" 小龍測試:0>HGET zhucw id "100" 小龍測試:0>HGETALL zhucw 1) "age" 2) "30" 3) "name" 4) "zhuchunwang" 5) "id" 6) "100"
2.3 List
-
訊息佇列 & 電商秒殺
# 從左側往mq中放入元素 小龍測試:0>lpush mq message1 "1" 小龍測試:0>lpush mq message2 "2" # 從右側往mq中放入訊息 小龍測試:0>rpush mq 小龍測試:0>message3 "3" # 檢視mq長度 小龍測試:0>llen mq "3" # 檢視mq從第一個到最後一個(所有元素) 小龍測試:0>lrange mq 0 -1 1) "message2" 2) "message1" 3) "message3" # 檢視mq從第一個到第二個 小龍測試:0>lrange mq 0 1 1) "message2" 2) "message1" 小龍測試:0>lrange mq 1 2 1) "message1" 2) "message3" # 從左邊擷取一個 小龍測試:0>ltrim mq 0 1 "OK" 小龍測試:0>lrange mq 0 -1 1) "message2" 2) "message1" 小龍測試:0>lpush mq message4 "3" 小龍測試:0>lrange mq 0 -1 1) "message4" 2) "message2" 3) "message1" # 從左邊取出一個 小龍測試:0>lpop mq "message4" 小龍測試:0>lrange mq 0 -1 1) "message2" 2) "message1" # 從左邊新增兩個 message 和 5 小龍測試:0>lpush mq message 5 "4" # 從右邊取走一個 小龍測試:0>rpop message null 小龍測試:0>rpop mq "message1" 小龍測試:0>lrange mq 0 -1 1) "5" 2) "message" 3) "message2"
2.4 SET
-
好友集合
# 新增元素 小龍測試:0>SADD zcw aaa "1" 小龍測試:0>SADD zcw bbb "1" 小龍測試:0>SADD zcw ccc "1" 小龍測試:0>SADD zcw ccc "0" # 檢視元素 小龍測試:0>smembers zcw 1) "aaa" 2) "ccc" 3) "bbb" 小龍測試:0>SADD xm aaa "1" 小龍測試:0>SADD xm ddd "1" 小龍測試:0>SADD xm ddd "0" 小龍測試:0>smembers xm 1) "ddd" 2) "aaa" # 以zcw為基準,xm中沒有的 小龍測試:0>sdiff zcw xm 1) "ccc" 2) "bbb" # zcw 和 xm的交際 小龍測試:0>sinter zcw xm 1) "aaa"
2.5 ZSET
-
電商排序、熱搜等
# 新增元素 小龍測試:0>ZADD phone 100 huawei "1" 小龍測試:0>ZADD phone 90 xiaomi "1" 小龍測試:0>ZADD phone 110 apple "1" 小龍測試:0>ZADD phone 80 vivo "1" # 檢視元素 從小到大 小龍測試:0>ZRANGE phone 0 10 WITHSCORES 1) "vivo" 2) "80" 3) "xiaomi" 4) "90" 5) "huawei" 6) "100" 7) "apple" 8) "110"小龍測試:0> # 檢視元素 分值從大到小 小龍測試:0>Zrevrange phone 0 10 withscores 1) "apple" 2) "110" 3) "huawei" 4) "100" 5) "xiaomi" 6) "90" 7) "vivo" 8) "80"