## 特性
* 簡單
* 速度快
* 持久化
* 多種數據結構
* 支持多種編程語言
* 功能豐富
* 高可用,高分布式支持
* 主從復制
### 簡單
* C語言編寫的.
* 核心代碼很少,只有5W行代碼 , 可以實現定制化 .
* 不依賴外部庫(like libvent)
* 單線程模型
### 速度快
為什么使用單線程呢 ? 因為內存的速度非常快.

從上到下,速度是越來越慢的 . redis使用的是內存部分 .內存相對于寄存器相對便宜, 相對硬盤速度要快很多 .

從下圖可以看出,存儲的介質是很重要的,而內存的速度是非常快的. Redis真正快的原因就是因為使用內存 . 但是很多場景中,單線程會是并發的瓶頸.

### 持久化(斷電不丟數據)
Redis所有數據保持在內存中, 對數據的更新將異步的保存到磁盤上 .

### 多種數據結構
除了以下五種數據結構外,在新版本的Redis中還提供了
* BitMaps : 位圖 .
* HyperLoglog : 超小內存唯一值計數(有時候不準確,會有誤差).
* GEO : 地理信息定位 .

### 功能豐富
* 發布訂閱
* 事物
* Lua腳本
* pipeline
### 主從復制
哨兵

### 高可用,分布式
集群

- Redis簡介
- 簡介
- 典型應用場景
- Redis安裝
- 安裝
- redis可執行文件說明
- 三種啟動方法
- Redis常用配置
- API的使用和理解
- 通用命令
- 數據結構和內部編碼
- 單線程
- 數據類型
- 字符串
- 哈希
- 列表
- 集合
- 有序集合
- Redis常用功能
- 慢查詢
- Pipline
- 發布訂閱
- Bitmap
- Hyperloglog
- GEO
- 持久化機制
- 概述
- snapshotting快照方式持久化
- append only file追加方式持久化AOF
- RDB和AOF的抉擇
- 開發運維常見問題
- fork操作
- 子進程外開銷
- AOF追加阻塞
- 單機多實例部署
- Redis復制原理和優化
- 什么是主從復制
- 主從復制配置
- 全量復制和部分復制
- 故障處理
- 開發運維常見問題
- Sentinel
- 主從復制高可用
- 架構說明
- 安裝配置
- 客戶端連接
- 實現原理
- 常見開發運維問題
- 高可用讀寫分離
- 故障轉移client怎么知道新的master地址
- 總結
- Sluster
- 呼喚集群
- 數據分布
- 搭建集群
- 集群通信
- 集群擴容
- 集群縮容
- 客戶端路由
- 故障轉移
- 故障發現
- 故障恢復
- 開發運維常見問題
- 緩存設計與優化
- 緩存收益和成本
- 緩存更新策略
- 緩存粒度控制
- 緩存穿透優化
- 緩存雪崩優化
- 無底洞問題優化
- 熱點key重建優化
- 總結
- 布隆過濾器
- 引出布隆過濾器
- 布隆過濾器基本原理
- 布隆過濾器誤差率
- 本地布隆過濾器
- Redis布隆過濾器
- 分布式布隆過濾器
- 開發規范
- 內存管理
- 開發運維常見坑
- 實戰
- 對文章進行投票
- 數據庫的概念
- 啟動多實例