1、string 的過時時間在從新設置值以後會被清除
複製代碼
127.0.0.1:6379> set hello 3
OK
127.0.0.1:6379> get hello
"3"
127.0.0.1:6379> ttl hello
(integer) -1
127.0.0.1:6379> expire hello 3000
(integer) 1
127.0.0.1:6379> set hello 4
OK
127.0.0.1:6379> ttl hello
(integer) -1
複製代碼
2、設置 string 類型的值能夠覆蓋任何其餘類型
複製代碼
127.0.0.1:6379> sadd settest 1,2
(integer) 1
127.0.0.1:6379> type settest
set
127.0.0.1:6379> set settest hello
OK
127.0.0.1:6379> type settest
string
127.0.0.1:6379> sadd settest a,b
(error) WRONGTYPE Operation against a key holding the wrong kind of value
複製代碼
Redis lists 基於 Linked Lists 實現。頭尾操做極速,檢索較慢
複製代碼
有序集合的排序默認按照字典序排列
複製代碼
無論是簡單和複雜的數據均可以直接轉爲string存儲。nginx
key: active:spring2019:title value:"2019春節活動" 操做:setredis
商品信息,省市區信息,活動配置等一系列不常變化的冷數據緩存spring
很是熱門數據的緩存,遊戲排行,後臺每秒更新一次數據sql
2019春節活動參加人數數據庫
key: active:spring2019:total value:3045 操做:incrvim
一我的一天只能進行一次簽到緩存
key:active:checkin:userId:10000:day:20190101 value:簽到時間戳 操做:expirebash
下面的代碼不嚴謹,nx 能夠放併發數據結構
127.0.0.1:6379> set lockkey 1 nx
OK
127.0.0.1:6379> set lockkey 1 nx
(nil)
複製代碼
list架構
push,pop
push,pop
阻塞式訪問 BRPOP 和 BLPOP 命令
set
2019春節活動參加人數
key: active:spring2019:users value:100010,10020 操做:不少
用戶標籤
商家標籤
春節活動一共有 abcde 5個任務,用戶A已經完成a,b,用戶B已經完成 c,d
用戶A,用戶B 都完成的任務
用戶A,用戶B 任一完成的任務
用戶A尚未完成的任務
從禮品庫 set 中隨機得到一個禮品
hash
用戶在活動期間一共得到了不一樣種類獎品數量
key:active:spring:g'ifts:user:10010 value:{"giftA":2,"giftB":5} 操做:不少
能夠直接對 giftA 執行 incr 操做
zset
用戶消費排行,點贊排行等
key:active:spring:star:rank value:用戶ID,score:點贊數量 操做:不少
根據分數獲取 top 10
查詢某個用戶的分數
查詢 得分在90-100 之間的用戶
有時候咱們的得分並非由某一項業務值決定的,多是由兩項業務值來排序的,好比先看用戶的實際得分,在看用戶等級,那麼咱們在設計score的時候能夠用小數點以前的值表示得分,小數點以後的值表示等級,若是有其餘特殊要求,還能夠考慮得分加上某個極大值來處理。
不要用list存大量數據並檢索
複製代碼
判斷用戶有沒有參加應該用set,不該該每一個用戶一個key
複製代碼
羣內提供免費的Java架構學習資料,QQ羣:643459718
(裏面有高可用、高併發、高性能及分佈式、Jvm性能調優、Spring源碼, MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)