本文分享作者在專案中使用 Redis 與 Tokyo Tyrant (TT) 的實戰經驗,涵蓋資料結構、指令、效能特徵與選型建議。
| 類別 | 常用指令 |
|---|---|
| 通用 | EXISTS, DEL, TYPE, KEYS, RENAME, EXPIRE, TTL, FLUSHDB, FLUSHALL |
| String | SET, GET, GETSET, MGET, SETNX, MSET, INCR, DECR |
| List | RPUSH, LPUSH, LLEN, LRANGE, LTRIM, LPOP, RPOP, RPOPLPUSH |
| Set | SADD, SREM, SPOP, SMOVE, SCARD, SINTER, SUNION, SDIFF, SMEMBERS |
| Sorted Set | ZADD, ZREM, ZINCRBY, ZRANGE, ZREVRANGE, ZRANGEBYSCORE, ZCARD, ZSCORE |
| 特性 | Memcached | Tokyo Tyrant |
|---|---|---|
| 本質 | 純記憶體緩存 | 持久化 Key-Value 資料庫 |
| 資料持久化 | 不支援(重啟丟失) | 支援(RDB/AOF 類似機制) |
| 過期機制 | LRU + TTL (max 30 天) | 無內建過期,需應用層實現 |
| 序列化 | 客戶端自動處理 | 需自行處理(存二進制安全字串) |
| 高可用 | Client 端一致性哈希 | 內建 Master-Slave 複製 |
| 擴展性 | 叢集需客戶端/Proxy 支援 | 支援 Lua 腳本擴展邏輯 |
Redis 以記憶體速度換取極致效能,適合熱資料;Tokyo Tyrant 以磁碟持久化換取容量,適合大資料量且需持久化的場景。實際選型應根據資料特徵、一致性要求、運維能力綜合評估。