1. 程式人生 > >Redis 使用進階

Redis 使用進階

Redis使用場景

  • 快取——熱資料:配合關係型資料庫做快取記憶體
  • 計數器:統計點選數等應用
  • 佇列
  • 最新專案列表
  • 排行榜,取TOP N操作

同類產品

網路IO模型 記憶體管理 資料一致性 儲存
Redis 單執行緒的IO複用模型 現場申請記憶體池的方式 提供了事務的功能,保證一串命令的原子性 除了Key-Value,還支援list, set, sorted set, hash資料結構
Memcached 多執行緒,非阻塞IO複用的網路模型 預分配的記憶體池方式 提供了CAS命令 簡單的Key-Value,不支援持久化和複製

大公司使用情況

  • Airbnb
  • Uber
  • Twitter  

支援的集合

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:為了效能以及事務的原子性