## Redis快的原因
1. 純內存訪問
2. 非阻塞I/O,適用epoll作為I/O多路復用的實現
3. 單線程避免了線程切換
## Redis常用的數據類型和使用場景
### **String**

**特點**
* 最常用
* value支持字符串,數字,二進制
* 最大值不能大于512MB
**適用場景**
* web架構中充當緩存層 - 提高訪問性能保護存儲層
* 計數 - 統計數據并異步保存到存儲層
* 共享session - 對集群架構的服務器提供共享session支持
* 限速 - 通過指定緩存的有效期,限制例如獲取驗證碼的請求頻率
### **Hash**

**特點**
* 相比關系型數據庫,Hash類型的每個key可以有不一樣的field,但是不支持復雜查詢
**適用場景**
* 保存用戶信息
### **列表**

**特點**
* 元素 有序(支持指定下標),可重復,支持字符串,hash,數量上限是2^32-1
* 支持頭尾兩端的插入(push)彈出(pop),或者指定下標獲取元素
**適用場景**
* 消息隊列 - 生產者 & 隊列 & 多個消費者
* 文章列表 - 使用hash保存用戶文章的title,content,然后作為元素push到隊列
### **集合**

**特點**
* 無序,不可重復
* 元素數量上限2^32-1
**適用場景**
* 設置用戶標簽
### **有序集合**

**特點**
* 元素不可重復,但score可重復;有序(通過score列實現)
**適用場景**
* 排行榜系統 - eg:zadd user:ranking:2016_03_15 mike 3
## 事務
## 持久化數據