一、Redis初映象
高性能的key-value服務器 多種數據結構(區別於memcached)豐富的功能 高可用分佈式支持
二、相識
2-1、Redis初識
2-1-1、Redis是什麼
開源(短小,精悍)、key-value基於鍵值的存儲服務系統(Java中的Map)、多種數據結構(String、Hash Tables、Linked Lists、Sets、Sorted Sets)、高性能
2-1-2、Redis的特性
- 速度快(10W OPS)
數據===》 內存中
什麼語言===》 C語言(5萬行,最近版本)
線程模型===》 單線程
讀寫對比
- 持久化(斷電不丟數據)
Redis所有數據保持在內存中,對數據的更新將異步的保存到磁盤上 - 多種數據結構,5種,其他爲衍生
String、Hash Tables、Linked Lists、Sets、Sorted Sets
BitMaps:位圖(屬於String)
HyperLogLog:超小內存唯一值計算
GEO:地理信息定位() - 支持多種編程語言
Java 、PHP 、Ruby 、LUA - 功能豐富(發佈訂閱)
發佈訂閱
Lua腳本
事務
pipeline - 簡單(代碼,使用)
單機的開發版(2萬多行)
3之後,增加集羣功能
不依賴外部庫
單線程模型 - 主從複製
8、高可用、分佈式
高可用===》Redis-Sentinel(V2.8)支持高可用
分佈式===》Redis-Cluster(V3.0)支持分佈式
2-1-3、Redis的典型應用場景
緩存系統計數器(點贊,播放次數)消息隊列系統排行榜(有序集合)社交網絡(天然適合)實時系統(布隆過濾器?)
2-2、API的使用
2-3、Redis客戶端的使用
2-4、多種功能
2-6、Redis複製的原理和優化
2-7、Redis Sentinel
2-8、Redis Cluster(分佈式實現)
`