redis常見的幾種使用場景

咖啡色的羊駝發表於2016-03-15

排行榜top100

相關函式 zAdd + lRange

使用方式 使用zAdd記錄每個value的分數值,欄位即可實現排序,再進行lRange進行取前100,就實現了排行榜的效果

計數器

相關函式 incr + decr

使用方式 設定一個初始值為1的key,對其進行incr/decr操作,進行計數的功能。

佇列

相關函式 rPush + lPop + lSize

使用方式 對一個key進行rPush關鍵字,再lPop取出關鍵字進行相關的業務處理,直至lSize為0

介面頻率限制

相關函式 incr + expire

使用方式 根據ip與時間(粒度可自定義,比如每小時)為key值進行incr計數,並設定expire有效時間,在有效時間內次數大於閥值則給相關的限制

資料池

相關函式 hSet + hLen + hKeys

使用方式 根據key值進行hSet設定資料池中的資料,hLen查詢資料池的數量,若有則hKeys取之

線上時長

相關函式 setEx + get + set + hIncrBy + incrBy + ttl + expireAt + hGetAll

使用方式 先setEx記錄上一次操作時間,並用get獲取與當前時間對比,若低於某閥值,則視為線上,set更新上一次線上時間,同時hIncrBy當前小時的線上時長(注意59分的情況),incrBy當天總的線上時長,ttl檢測總時長是否設定了過期時間(以免垃圾資料),並expireAt設定到某時過期,另走佇列hGetAll取出當天每小時的線上時間進行記錄。

未完待續…

相關文章