redis緩存中間件基礎知識介紹

redis緩存中間件基礎知識介紹

基本數據結構

  • String:普通的set和get,做簡單的KV緩存、計數器和共享用戶Session

  • Hash:類似map,一般存儲結構化的數據(簡單的對象),Hash的應用場景比較單一(現在的對象內部也嵌套一對象不適合Hash)。

  • List:有序列表(插入時的順序)

消息隊列:生產者通過Lpush,多個消費者使用BRpop阻塞的“搶”列表尾部的數據。

文章列表數據分頁展示:通過lrange命令,讀取某個閉區間內的元素,比如微博向下滑動刷新出頁面。

  • Set:無序集合,自動去重,使用set進行交集,并集,差集的操作。比如兩個人的共同好友。

  • StoredSet:帶排序的Set

  • Bit-Map 實現的BloomFilter:布隆過濾器,可以用來判斷數據庫中是否存在這個信息。

持久化

RDB:鏡像全量持久化,持久化耗費較長時間,恢復數據速度快,不夠實時

AOF:增量持久化,每一秒或者每一次操作就在AOF文件末尾追加上操作代碼,恢復數據時間慢。

如果中途斷電會怎么樣

取決于AOF日志sync屬性的配置,如果不追求性能,每條寫指令時都sync一下磁盤,就不會丟失數據。一般都使用定時sync,比如1s1次,這個時候最多就會丟失1s數據

RDB原理

fork和cow,fork是指redis通過創建子進程進行RDB操作,cow是指copy on write,子進程創建后,父子進程共享數據段,父進程繼續提供讀寫服務,寫臟的頁面數據會逐漸和子進程離開來。

Pipeline有什么好處,為什么用

可以將多次IO往返的時間縮減為一次,前提是pipeline執行的指令之間沒有因果關系,使用redis-banchmark進行壓測的時候可以發現影響redis的QPS峰值的一個重要因素是pipeline批次指令的數目。

更多redis知識請關注redis入門教程欄目。

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享