型別
簡介特性
場景string(字串)
二進位制安全
可以包含任何資料,比如jpg或者序列化的物件,乙個鍵最大能儲存512m
hash(字典)
鍵值對集合,即程式語言中的map型別
適合儲存物件,並且可以像資料庫中update乙個屬性一樣只修改某一項屬性值(memcached中需要取出整個字串反序列化成物件修改完再序列化存回去)
儲存、讀取、修改使用者屬性
list(列表)
鍊錶(雙向鍊錶)
增刪快,提供了操作某一段元素的api
1,最新訊息排行等功能(比如朋友圈的時間線) 2,訊息佇列
set(集合)
雜湊表實現,元素不重複
1,新增、刪除,查詢的複雜度都是o(1) 2,為集合提供了求交集、並集、差集等操作
sorted set(有序集合)
將set中的元素增加乙個權重引數score,元素按score有序排列
資料插入集合時,已經進行天然排序
1,排行榜 2,帶權重的訊息佇列
1、會話快取(session cache)
最常用的一種使用redis的情景是會話快取(session cache)。用redis快取會話比其他儲存(如memcached)的優勢在於:redis提供持久化。當維護乙個不是嚴格要求一致性的快取時,如果使用者的購物車資訊全部丟失,大部分人都會不高興的,現在,他們還會這樣嗎?
幸運的是,隨著 redis 這些年的改進,很容易找到怎麼恰當的使用redis來快取會話的文件。甚至廣為人知的商業平台magento也提供redis的外掛程式。
2、全頁快取(fpc)
除基本的會話token之外,redis還提供很簡便的fpc平台。回到一致性問題,即使重啟了redis例項,因為有磁碟的持久化,使用者也不會看到頁面載入速度的下降,這是乙個極大改進,類似php本地fpc。
再次以magento為例,magento提供乙個外掛程式來使用redis作為全頁快取後端。
此外,對wordpress的使用者來說,pantheon有乙個非常好的外掛程式 wp-redis,這個外掛程式能幫助你以最快速度載入你曾瀏覽過的頁面。
3、佇列
reids在記憶體儲存引擎領域的一大優點是提供 list 和 set 操作,這使得redis能作為乙個很好的訊息佇列平台來使用。redis作為佇列使用的操作,就類似於本地程式語言(如python)對 list 的 push/pop 操作。
如果你快速的在google中搜尋「redis queues」,你馬上就能找到大量的開源專案,這些專案的目的就是利用redis建立非常好的後端工具,以滿足各種佇列需求。例如,celery有乙個後台就是使用redis作為broker,你可以從這裡去檢視。
排行榜/計數器
redis在記憶體中對數字進行遞增或遞減的操作實現的非常好。集合(set)和有序集合(sorted set)也使得我們在執行這些操作的時候變的非常簡單,redis只是正好提供了這兩種資料結構。所以,我們要從排序集合中獲取到排名最靠前的10個使用者–我們稱之為「user_scores」,我們只需要像下面一樣執行即可:
當然,這是假定你是根據你使用者的分數做遞增的排序。如果你想返回使用者及使用者的分數,你需要這樣執行:
zrange user_scores 0 10 withscores
agora games就是乙個很好的例子,用ruby實現的,它的排行榜就是使用redis來儲存資料的,你可以在這裡看到。
5、發布/訂閱
最後(但肯定不是最不重要的)是redis的發布/訂閱功能。發布/訂閱的使用場景確實非常多。我已看見人們在社交網路連線中使用,還可作為基於發布/訂閱的指令碼觸發器,甚至用redis的發布/訂閱功能來建立聊天系統!(不,這是真的,你可以去核實)。
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將使用者的...