redis使用場景
1快取作為key-value形態的記憶體資料庫,使用redis快取資料非常簡單,只需要通過string
型別將序列化後的物件存起來即可。
序列化(serialization):是將物件的狀態資訊轉化為可以儲存或傳輸的形式的過程。以後,可以通過從儲存區中讀取或反序列化物件的狀態,重新建立該物件。不過也有需要注意的地方:
2訊息佇列
redis中的list
的資料結構實現的是雙向鍊錶,所以可以非常便捷的應用於訊息佇列(生產者/消費者模型)。訊息的生產者只需要通過lpush將訊息放入list,消費者可以通過rpop取出該訊息,並且保證訊息的有序性。
如果需要實現帶有優先順序的訊息佇列也可以選擇**sorted list
。而pub/sub
**也可以作為發布者/訂閱者模型的訊息。由於redis帶有持久化功能,無需擔心由於伺服器故障導致訊息丟失的情況發生。
有序集合的物件編碼可以是ziplist或者skiplist3時間軸
list作為雙向鍊錶,不光可以作為佇列使用,如果將它用作棧便可以成為乙個公用的時間軸。當使用者發完微博後,都通過lpush將它存放在乙個key為latest_weibo的list中。之後便可以通過lrange取出最新的微博。
4排行榜
使用sortedset可以輕鬆打造乙個熱度排行榜,zrevrangebyscore可以得到以分數倒序排列的序列,zrank可以得到成員在該排行榜中的作用。
5計數器
計數功能應該是最適合redis的使用場景之一,高頻率讀寫特性完全可以發揮redis作為記憶體資料庫的高效。在redis的資料結構中,string, hash, 和sorted set都提供了incr方法用於原子性自增操作,下面舉例說明它們各自的應用場景:
6好友關係
一篇介紹微博redis應用的ppt中,其中提到微博的redis主要用在計數和好友關係兩方面,
《redis設計與實現》中作者最開始使用redis中的set
是因為傳統資料庫無法計算集合的交集。
對於乙個使用者a,將它的關注和粉絲的使用者id都存放到兩個set中:
7分布式鎖
在redis2.6.12版本開始,string
的set命令增加了三個引數:
8倒排索引
倒排索引是構造搜尋功能的最常見的方式,redis中也可以通過set建立倒排索引,這裡以簡單的拼音+字首搜尋城市功能舉例:
參考文獻
redis應用場景
redis使用場景
最近要去面試php程式設計師,去各家招聘 看看,都要有redis方面的知識儲備。這裡寫一篇部落格,就當是對最近學習redis的一次回顧。簡單一句話介紹redis 基於記憶體的高效的key value資料庫,把資料載入到記憶體中進行處理,定期把資料儲存到硬碟進行儲存,單執行緒。redis五大資料型別 ...
redis使用場景
redis開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在寫龐大的sql上了,而是利用redis靈活多變的資料結構和資料操作來實現。redis常用資料型別 redis最為常用的資料型別主要有以下五種 下面我們先來逐一的分析下這五種資料型別的使用和內部實現方式 ...
Redis使用場景
1 字串使用場景 a 快取功能 典型使用場景 redis作為快取層,mysql作為儲存層,絕大部分請求的資料都是從redis中獲取,由於redis具有支撐高併發的特性,所以快取通常能起到加速讀寫和降低後端壓力的作用。b 計數 c 共享session 典型應用場景 使用者登陸資訊,redis將使用者的...