一、string 的過時時間在從新設置值以後會被清除redis
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
二、設置 string 類型的值能夠覆蓋任何其餘類型spring
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存儲。數據結構
key: active:spring2019:title value:"2019春節活動" 操做:set併發
商品信息,省市區信息,活動配置等一系列不常變化的冷數據緩存分佈式
很是熱門數據的緩存,遊戲排行,後臺每秒更新一次數據性能
2019春節活動參加人數lua
key: active:spring2019:total value:3045 操做:incrspa
一我的一天只能進行一次簽到
key:active:checkin:userId:10000:day:20190101 value:簽到時間戳 操做:expire
下面的代碼不嚴謹,nx 能夠放併發
127.0.0.1:6379> set lockkey 1 nx OK 127.0.0.1:6379> set lockkey 1 nx (nil)
push,pop
push,pop
阻塞式訪問 BRPOP 和 BLPOP 命令
2019春節活動參加人數
key: active:spring2019:users value:100010,10020 操做:不少
用戶標籤
商家標籤
春節活動一共有 abcde 5個任務,用戶A已經完成a,b,用戶B已經完成 c,d
用戶A,用戶B 都完成的任務
用戶A,用戶B 任一完成的任務
用戶A尚未完成的任務
從禮品庫 set 中隨機得到一個禮品
用戶在活動期間一共得到了不一樣種類獎品數量
key:active:spring:g'ifts:user:10010 value:{"giftA":2,"giftB":5} 操做:不少
能夠直接對 giftA 執行 incr 操做
用戶消費排行,點贊排行等
key:active:spring:star:rank value:用戶ID,score:點贊數量 操做:不少
根據分數獲取 top 10
查詢某個用戶的分數
查詢 得分在90-100 之間的用戶
有時候咱們的得分並非由某一項業務值決定的,多是由兩項業務值來排序的,好比先看用戶的實際得分,在看用戶等級,那麼咱們在設計score的時候能夠用小數點以前的值表示得分,小數點以後的值表示等級,若是有其餘特殊要求,還能夠考慮得分加上某個極大值來處理。
不要用list存大量數據並檢索
判斷用戶有沒有參加應該用set,不該該每一個用戶一個key