Redis簡介
Redis 是完全開源免費的,遵守BSD協議,是一個高效能的key-value資料庫。 Redis 是一個強大的記憶體型儲存,具有豐富的資料結構,使其可以應用於很多方面,包括作為資料庫、快取、訊息佇列等等。
Redis 與其他 key - value 快取產品有以下三個特點:
- Redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用。
- Redis不僅僅支援簡單的key-value型別的資料,同時還提供list,set,zset,hash等資料結構的儲存。
- Redis支援資料的備份,即master-slave模式的資料備份。
Redis 優勢:
- 效能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
- 豐富的資料型別 – Redis支援二進位制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 資料型別操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要麼成功執行要麼失敗完全不執行。單個操作是原子性的。多個操作也支援事務,即原子性,通過MULTI和EXEC指令包起來。
- 豐富的特性 – Redis還支援 publish/subscribe, 通知, key 過期等等特性。
Redis的5個常見應用場景
如果你的印象中Redis只是一個 key-value 儲存,那就錯過了Redis很多強大的功能,下面就是實際應用場景中5個最普遍的案例。
1. 全頁面快取
如果你使用的是伺服器端內容渲染,你又不想為每個請求重新渲染每個頁面,就可以使用 Redis 把常被請求的內容快取起來,能夠大大的降低頁面請求的延遲,已經有很多框架用Redis來快取頁面,這就是頁面靜態化的一種方式。
2. 排行榜
Redis 基於記憶體,可以非常快速高效的處理增加和減少的操作,相比於使用 SQL 請求的處理方式,效能的提升是非常巨大的。
Redis 的有序集合可以輕鬆實現“從一個大型列表中取得排名最高的N個元素”,毫秒級,而且非常簡單。
3. Session 儲存
這可能是應用最廣的點了,相比較於類似 memcache 的 session 儲存,Redis 具有快取資料持久化的能力,當快取因出現問題而重啟後,之前的快取資料還在那兒,這個就比較實用,避免了因為session突然消失帶來的使用者體驗問題。
4. 佇列
例如 email 的傳送佇列、等待被其他應用消費的資料佇列,Redis 可以輕鬆而自然的建立出一個高效的佇列。
5.釋出/訂閱
pub/sub 是 Redis 內建的一個非常強大的特性,例如可以建立一個實時的聊天系統、社交網路中的通知觸發器等等。
https://www.toutiao.com/i6589409175829217800/