redis是 一 個key-value存 儲 系 統 。 它 支 持 存 儲 的 value型別相對更多, 包括string(字串)、 list(鏈 表)、 set(集合)、 zset(sorted set --有序集合)和 hash(雜湊型別) 。 這些資料型別都支援push/pop、 add/remove及取交集並集和差集及更豐富的操作, 而且這些操作都是原子性的。
官方給出的數字是讀寫效能可以達到10萬/秒, 當然這也取決於機器的效能
1. redis的所有資料都是存放在記憶體中的, , 所以把資料放在記憶體中是redis速度快的最主要原因。
2. redis是用c語言實現的, 一般來說c語言實現的程式「距離」作業系統更近, 執行速度相對會更快。
3. redis使用了單執行緒架構, 預防了多執行緒可能產生的競爭問題。(redis6.0 支援多執行緒)
4. 作者對於redis源**可以說是精打細磨, 曾經有人評價redis是少有的集效能和優雅於一身的開源**
2.基於key-value
3.豐富的功能
.1 提供了鍵過期功能, 可以用來實現快取。
- 供了發布訂閱功能, 可以用來實現訊息系統。
- 支援lua指令碼功能, 可以利用lua創造出新的redis命令。
- 提供了簡單的事務功能, 能在一定程度 上保證事務特性。
- 提供了流水線( pipeline)功能, 這樣客戶端能將-批命令-一次性傳到redis,減少網路的開銷。
1.快取(string等):
快取機制幾乎在所有的大型**都有使用, 合理地使用快取不僅可以加快資料的訪問速 座而且能夠有效地降低後端資料來源的壓力。 redis 提供了鍵值過期時間設定, 並且也提供 7靈活控制最大記憶體和記憶體溢位後的淘汰
策略。 可以這麼說, 乙個合理的快取設計能夠為一 個**的穩定保駕護航。 第11章將對快取的設計與使用進行詳細說明。
2,排行榜系統(有序集合)
排行榜系統幾乎存在於所有的**, 例如按照熱度排名的排行榜, 按照發布時間的排行榜, 按照各種複雜維度計算出的排行榜, redis 提供了列表和有序集合資料結構, 合理地使用這些資料結構可以很方便地構建各種
排行榜系統。
3.計數器(string)
數功能而且計數的效能也非常好, 可以說是計數器系統的重要選擇。
4.社交**(集合)
贊/踩、 粉絲、 共同好友/喜好、 推送、 下拉重新整理等是社交**的必備功能, 由於社交**訪問量通常 比較大, 而且傳統的關係型資料不太適 合儲存這種型別的資料, redis提供的資料結構可以相對比較容易地實現這些功能。
5.訊息佇列(list)
訊息佇列系統可以說是一- 個大型**的必備基礎元件, 因為其具有業務解耦、 非實時業務削峰等特性。
redis提供了發布訂閱功能和阻塞佇列的功能, 雖然和專業的訊息佇列比還不夠足夠強大, 但是對於般的訊息佇列
功能基本可以滿足
6.共享session
7.限速
很多應用處於安全的考慮, 會在每次進行登入的時候, 設定簡訊驗證登入; 而對於短
信介面不被頻繁訪問, 會限制使用者每分鐘獲取驗證碼的頻率, 比如乙份中
不超過5次
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將使用者的...