Redis-相关概念记录
生活随笔
收集整理的這篇文章主要介紹了
Redis-相关概念记录
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
Redis內(nèi)部數(shù)據(jù)類型
-
SDS(simple dynamic string)
通過SDS來存儲String,優(yōu)勢: - 直接獲取長度,效率更高;
- 防止溢出;
- 空間分配,釋放策略更加高效;
- 二進(jìn)制安全;
-
鏈表
-
字典 字典包含哈希表,哈希表再包含哈希節(jié)點(diǎn)。
- 自動擴(kuò)容或者縮容,采取漸進(jìn)式rehash;
-
跳表
只用于有序列表。 -
整數(shù)集合
集合鍵的底層實現(xiàn)之一,可以升級或者降級優(yōu)化空間。 -
壓縮列表
列表鍵和哈希鍵的底層實現(xiàn)之一,只包含少量的項,均是小整數(shù)值時,采用壓縮列表來作為底層實現(xiàn)。
Redis對象
-
字符串對象
- 編碼:int raw(SDS) embstr;
-
列表對象
- 編碼:ziplist(壓縮列表) linkedlist(鏈表);
-
哈希對象
- 編碼:ziplist(壓縮列表) hashtable(字典);
-
集合對象
- 編碼:intset(整數(shù)集合) hashtable(字典);
-
有序集合
- 編碼:ziplist(壓縮列表) skiplist(跳表);
Redis持久化
-
RDB
- 將內(nèi)存中的數(shù)據(jù)庫狀態(tài)保存到磁盤當(dāng)中。
- 方式:SAVE(導(dǎo)致服務(wù)器阻塞) BGSAVE(子線程方式,服務(wù)器不會阻塞) 配置save參數(shù)設(shè)置自動觸發(fā)條件;
-
AOF
- 通過保存服務(wù)器執(zhí)行命令的寫來記錄數(shù)據(jù)庫狀態(tài)。
- 步驟:命令追加 文件寫入 文件同步(always everysec no)
Redis事件
-
文件事件
- Reactor模型,同時支持多個客戶端,所有的事件放入隊列單線程處理。
-
時間事件
- 類型:定時時間,周期性事件;
- 所有的時間事件通過鏈表的形式組成,若是周期任務(wù),處理完成后,新增加事件在鏈表當(dāng)中;
Sentinel
-
基礎(chǔ)概念
- 本質(zhì)上是特殊模式下的Redis服務(wù)器;
- 通過配置文件制定監(jiān)視的主服務(wù)器;
- 通過INFO命令從主服務(wù)器獲取從服務(wù)器;
-
選舉相關(guān)
- 與Redis服務(wù)器通信答復(fù)無效時判斷為主觀下線;
- 與其他Sentinel協(xié)商判斷是否客觀下線;
- 選舉Leader(raft算法),進(jìn)行故障轉(zhuǎn)移;
集群
- 基礎(chǔ)概念
- 各個節(jié)點(diǎn)通過Gossip協(xié)議傳播;
- 集群中的數(shù)據(jù)庫被分為16384個slot;
- 節(jié)點(diǎn)只能使用0號數(shù)據(jù)庫;
事務(wù)
- 基礎(chǔ)概念
- 事務(wù)提供一種將多個命令請求打包,然后一次性,按順序地執(zhí)行多個命令的機(jī)制;
- WATCH為樂觀鎖,若事務(wù)期間,WATCH監(jiān)視的鍵至少有一個被修改,則事務(wù)失敗;
- 事務(wù)的ACID
- 原子性:Redis事務(wù)不支持回滾;
- 一致性;
- 隔離性;
- 耐久性;
研發(fā)規(guī)范
- Key設(shè)計
- key的一個格式約定: object-type:id:field 。用":"分隔域,用"."作為單詞間的連接, 如" comment:12345:reply.to "。不推薦含義不清的key和特別長的key。
Redis-Java客戶端
內(nèi)存淘汰策略
內(nèi)存使用相關(guān)
分片
- 優(yōu)勢
- 更多的內(nèi)存;
- 更多的cpu,帶寬;
- 劣勢
- 不能直接的做多鍵相關(guān)的操作;
- 涉及多鍵的事務(wù)不支持;
- 分片是按照Key來劃分,對單Key,但是value數(shù)據(jù)量很大的場景無效;
- 擴(kuò)容有一定難度;
- 實現(xiàn)方式
- 客戶端分片;
- 代理分片(Twemproxy)
- 查詢路由(Redis cluster)
高可用
應(yīng)用場景
- Redis存儲會話
- 使用容器拓展實現(xiàn);
- 自定義會話管理;
- 使用框架的會話管理工具;
參考列表:
轉(zhuǎn)載于:https://my.oschina.net/u/3052784/blog/1608747
總結(jié)
以上是生活随笔為你收集整理的Redis-相关概念记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高性能MySQL——查询性能优化
- 下一篇: 闪存中的NorFlash、NandFla