redis是一個key-value儲存系統,可以用在下一個場景,1,2,5用得較多
1、快取
熱點資料(經常會被查詢,但是不常被修改或刪除的資料),首選使用redis快取。 (建議學習:Redis影片教學)
2、計數器
單執行緒避免並發問題,高效能,如減庫存。
3、佇列
相當於訊息系統,ActiveMQ,RocketMQ等工具類似,但是個人覺得簡單用一下還行,如果對於資料一致性要求高的話還是用RocketMQ等專業系統。
4、位元操作
使用setbit、getbit、bitcount指令,如統計使用者簽到,去重登入次數統計,某使用者是否線上狀態等;
redis內建立一個足夠長的數組,每個數組元素只能是0和1兩個值,然後這個數組的下標index用來表示我們上面例子裡面的用戶id(必須是數字哈) ,那麼很顯然,這個幾億長的大數組就能透過下標和元素值(0和1)來建構一個記憶系統,上面我說的幾個場景也就能夠實現。用到的指令是:setbit、getbit、bitcount
5、分散式鎖定與單執行緒
驗證前端的重複請求(可以自由擴充類似情況),可以透過redis進行過濾:每次請求將request Ip、參數、介面等hash作為key儲存redis(冪等性請求),設定多長時間有效期,然後下次請求過來的時候先在redis中檢索有沒有這個key,進而驗證是不是一定時間內過來的重複提交。
秒殺系統,基於redis是單執行緒特徵,防止資料庫「爆破」
#6、最新清單
redis的LPUSH指令建構List 。
7、排行榜
誰得分高誰排名往上。指令:ZADD(有序集,sorted set)。
更多Redis相關技術文章,請造訪Redis入門教學欄位學習!
以上是redis一般在哪裡使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!