Redis有哪些常用使用場景?

MaChao發表於2020-10-28

快取

  • 毫無疑問這是Redis當今最為人熟知的使用場景。再提升伺服器效能方面非常有效;
  • 一些頻繁被訪問的資料,經常被訪問的資料如果放在關係型資料庫,每次查詢的開銷都會很大,而放在redis中,因為redis 是放在記憶體中的可以很高效的訪問。

排行榜

  • 在使用傳統的關係型資料庫(mysql oracle 等)來做這個事兒,非常的麻煩,而利用Redis的SortSet(有序集合)資料結構能夠簡單的搞定;
ZADD runoobkey 1 redis
ZADD runoobkey 2 mongodb
ZADD runoobkey 3 mysql
ZADD runoobkey 3 mysql
ZADD runoobkey 4 mysql
ZRANGE runoobkey 0 10 WITHSCORES

計算器/限速器

  • Redis中原子性的自增操作,我們可以統計類似使用者點贊數、使用者訪問數等,這類操作如果用MySQL,頻繁的讀寫會帶來相當大的壓力;限速器比較典型的使用場景是限制某個使用者訪問某個API的頻率,常用的有搶購時,防止使用者瘋狂點選帶來不必要的壓力;

好友關係

  • 利用集合的一些命令,比如求交集、並集、差集等。可以方便搞定一些共同好友、共同愛好之類的功能。

簡單訊息佇列

  • 除了Redis自身的釋出/訂閱模式,我們也可以利用List來實現一個佇列機制,比如:到貨通知、郵件傳送之類的需求,不需要高可靠,但是會帶來非常大的DB壓力,完全可以用List來完成非同步解耦;
LPUSH runoobkey redis
LPUSH runoobkey mongodb
LPUSH runoobkey mysql
LRANGE runoobkey 0 10

Session共享

  • 以PHP為例,預設Session是儲存在伺服器的檔案中,如果是叢集服務,同一個使用者過來可能落在不同機器上,這就會導致使用者頻繁登陸;採用Redis儲存Session後,無論使用者落在那臺機器上都能夠獲取到對應的Session資訊。
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章