Atitit redis使用場合總結 使用場景 目錄 1.1. 3. Session 儲存 1 1、 配置資料查詢 1 2. 排行榜應用,取TOP N操作 1 1.2. 1、查詢最
Atitit redis使用場合總結 使用場景
目錄
2.3. 3. Session 儲存 14. 佇列 25. 釋出/訂閱 2 4
這可能是應用最廣的點了,相比較於類似 memcache 的 session 儲存,Redis 具有快取資料持久化的能力,當快取因出現問題而重啟後,之前的快取資料還在那兒,這個就比較實用,避免了因為session突然消失帶來的使用者體驗問題。
- 排行榜應用,取TOP N操作
這個需求與上面需求的不同之處在於,前面操作以時間為權重,這個是以某個條件為權重,比如按頂的次數排序,這時候就需要我們的sorted set出馬了,將你要排序的值設定成sorted set的score,將具體的資料設定成相應的value,每次只需要執行一條ZADD命令即可。
3.需要精準設定過期時間的應用
如果在傳統的關係型資料庫,這就需要使用select * from table where name="" order by time desc limit 100;這十分消耗資料庫效能,但是通過Redis,就可以直接在Redis裡面通過Id建立一個List,指定長度1w,當需要查詢時,直接輸出該list的後100條記錄。
常見的排行問題,例如最熱話題、遊戲排名等等,這些都可以通過Redis來輕鬆實現,直接使用ZRank即可得到。
Redis不是真正意義上的可持久化資料庫,可以給資料加上一個有效時間,在有效時間超過時,Redis會自動刪除對應資料。
來分析下Redis的應用場景都有哪些。
- 4.計數器應用
Redis的命令都是原子性的,你可以輕鬆地利用INCR,DECR命令來構建計數器系統。
5.Uniq操作,獲取某段時間所有資料排重值
這個使用Redis的set資料結構最合適了,只需要不斷地將資料往set中扔就行了,set意為集合,所以會自動排重。
6. - 實時系統,反垃圾系統
通過上面說到的set功能,你可以知道一個終端使用者是否進行了某個操作,可以找到其操作的集合並進行分析統計對比等。沒有做不到,只有想不到。
7
Redis的Pub/Sub系統可以構建實時的訊息系統,比如很多用Pub/Sub構建的實時聊天系統的例子。
8.- 構建佇列系統
使用list可以構建佇列系統,使用sorted set甚至可以構建有優先順序的佇列系統。
9.
這個不必說了,效能優於Memcached,資料結構更多樣化
1、快取2、排行榜3、計數器4、分散式會話5、分散式鎖6、 社交網路7、最新列表8、訊息系統
快取現在幾乎是所有中大型網站都在用的必殺技,合理的利用快取不僅能夠提升網站訪問速度,還能大大降低資料庫的壓力。Redis提供了鍵過期功能,也提供了靈活的鍵淘汰策略,所以,現在Redis用在快取的場合非常多。
2、排行榜3、計數器4、分散式會話5、分散式鎖6、 社交網路7、最新列表8、訊息系統
很多網站都有排行榜應用的,如京東的月度銷量榜單、商品按時間的上新排行榜等。Redis提供的有序集合資料類構能實現各種複雜的排行榜應用。
3、計數器4、分散式會話5、分散式鎖6、 社交網路7、最新列表8、訊息系統
什麼是計數器,如電商網站商品的瀏覽量、視訊網站視訊的播放數等。為了保證資料實時效,每次瀏覽都得給+1,併發量高時如果每次都請求資料庫操作無疑是種挑戰和壓力。Redis提供的incr命令來實現計數器功能,記憶體操作,效能非常好,非常適用於這些計數場景。
4、分散式會話5、分散式鎖6、 社交網路7、最新列表8、訊息系統
叢集模式下,在應用不多的情況下一般使用容器自帶的session複製功能就能滿足,當應用增多相對複雜的系統中,一般都會搭建以Redis等記憶體資料庫為中心的session服務,session不再由容器管理,而是由session服務及記憶體資料庫管理。
5、分散式鎖6、 社交網路7、最新列表8、訊息系統
在很多網際網路公司中都使用了分散式技術,分散式技術帶來的技術挑戰是對同一個資源的併發訪問,如全域性ID、減庫存、秒殺等場景,併發量不大的場景可以使用資料庫的悲觀鎖、樂觀鎖來實現,但在併發量高的場合中,利用資料庫鎖來控制資源的併發訪問是不太理想的,大大影響了資料庫的效能。可以利用Redis的setnx功能來編寫分散式的鎖,如果設定返回1說明獲取鎖成功,否則獲取鎖失敗,實際應用中要考慮的細節要更多。
6、 社交網路7、最新列表8、訊息系統
點贊、踩、關注/被關注、共同好友等是社交網站的基本功能,社交網站的訪問量通常來說比較大,而且傳統的關係資料庫型別不適合儲存這種型別的資料,Redis提供的雜湊、集合等資料結構能很方便的的實現這些功能。
7、最新列表8、訊息系統
Redis列表結構,LPUSH可以在列表頭部插入一個內容ID作為關鍵字,LTRIM可用來限制列表的數量,這樣列表永遠為N個ID,無需查詢最新的列表,直接根據ID去到對應的內容頁即可。
8、訊息系統
訊息佇列是大型網站必用中介軟體,如ActiveMQ、RabbitMQ、Kafka等流行的訊息佇列中介軟體,主要用於業務解耦、流量削峰及非同步處理實時性低的業務。Redis提供了釋出/訂閱及阻塞佇列功能,能實現一個簡單的訊息佇列系統。另外,這個不能和專業的訊息中介軟體相比。
---------------------
Redis資料結構使用場景
Redis使用場景詳解 - 九北魚 - CSDN部落格.html
Redis 的 8 大應用場景! - Java技術棧 - CSDN部落格.html
Redis 的 5 個常見應用場景 - yunzhaji3762的部落格 - CSDN部落格.html