Redis 使用進階
阿新 • • 發佈:2018-12-16
Redis使用場景
- 快取——熱資料:配合關係型資料庫做快取記憶體
- 計數器:統計點選數等應用
- 佇列
- 最新專案列表
- 排行榜,取TOP N操作
同類產品
網路IO模型 | 記憶體管理 | 資料一致性 | 儲存 | |
---|---|---|---|---|
Redis | 單執行緒的IO複用模型 | 現場申請記憶體池的方式 | 提供了事務的功能,保證一串命令的原子性 | 除了Key-Value,還支援list, set, sorted set, hash資料結構 |
Memcached | 多執行緒,非阻塞IO複用的網路模型 | 預分配的記憶體池方式 | 提供了CAS命令 | 簡單的Key-Value,不支援持久化和複製 |
大公司使用情況
- Airbnb
- Uber
支援的集合
string | 計數功能 |
hash | 儲存物件 |
list | 簡單的訊息佇列,或者分頁 |
set | 全域性去重 |
sorted set | Top N |
事務機制
- MULTI
- DISCARD
- EXEC
- WATCH
使用時注意
- rdb/aof Backup:不僅用作cache,而更為一種k-v儲存,他完全替代了後端的儲存服務(MySQL),所以備份是非常必要的
- Small item & Small instance:由於Redis單執行緒的模型,大的資料結構list, sorted set, hash set 的批量處理就意為著其他請求的等待,故使用Redis的複雜資料結構一定要控制其單key-struct的大小。
- Redis Sentinel:高可用
LUA支援
- Redis在 2.6版本開始就支援lua
- 為什麼Redis需要LUA:為了效能以及事務的原子性