核心定位差異
| 維度 | Redis | Tokyo Tyrant (TT) |
| 本質 | 內存鍵值存儲,支持豐富數據結構 | Tokyo Cabinet (DBM) 的網絡接口層 |
| 持久化 | RDB 快照 + AOF 增量日誌,可配置策略 | 底層 B+Tree/Hash 自帶 ACID 事務持久化 |
| 數據類型 | String, List, Set, Sorted Set, Hash, Stream, Geo, Bitmap... | 僅 Key-Value (二進制安全),無原生結構 |
| 查詢能力 | 鍵掃描、Lua 腳本、模塊擴展 (RediSearch, RedisJSON) | 游標遍歷、前綴匹配、範圍查詢 (B+Tree 優勢) |
| 複製架構 | 主從異步、Sentinel、Cluster 分片 | 主從異步 (mtserver)、單機 |
| 內存佔用 | 全數據常駐內存,大數據集成本高 | 磁盤為主,內存作緩存,適合 TB 級數據 |
Redis 核心命令速查 (4.0+)
通用
EXISTS key | DEL key [key...] | TYPE key | KEYS pattern | RENAME old new
EXPIRE key seconds | TTL key | SELECT db | FLUSHDB | FLUSHALL
String
SET key val [EX sec] [NX|XX] | GET key | MGET key... | INCR key | INCRBY key n
SETNX key val | MSET key val... | GETSET key val
List (雙向鏈表)
LPUSH/RPUSH key val... | LPOP/RPOP | LRANGE key 0 -1 | LLEN key
LTRIM key 0 99 | LINDEX key idx | LSET key idx val | LREM key count val
Set (無序去重集合)
SADD key mem... | SREM key mem... | SPOP key | SCARD key | SISMEMBER key mem
SINTER key... | SUNION key... | SDIFF key... | SMEMBERS key
Sorted Set (有序集合,score 排序)
ZADD key score mem | ZREM key mem | ZINCRBY key incr mem
ZRANGE key 0 -1 [WITHSCORES] | ZREVRANGE ... | ZRANGEBYSCORE key min max
ZCARD key | ZSCORE key mem | ZREMRANGEBYSCORE key min max
Tokyo Cabinet / Tyrant 特性
- 存儲引擎:Hash (HDB) - 高性能點查詢;B+Tree (BDB) - 範圍查詢、有序遍歷、事務;Fixed-length (FDB) - 極致空間效率。
- 網絡協議:原生 TCP、HTTP、Memcached 兼容協議 (ttserver -p 11211)。
- 性能基準:Hash 模式寫入 100 萬條 0.64s,讀取 0.77s,數倍於 Berkeley DB。
- 事務支援:BDB 引擎提供 ACID 事務 (
tranbegin/commit/abort)。
選型決策矩陣
| 場景 | 推薦 | 理由 |
| 會話存儲、緩存、計數器、排行榜、實時分析 | Redis | 豐富結構、亞毫秒延遲、生態成熟 |
| 海量冷數據、日誌存儲、歸檔、TB 級鍵值 | Tokyo Tyrant | 磁盤優化、內存友好、範圍查詢 |
| 需要事務、複雜範圍掃描、遷移舊 DBM 系統 | Tokyo Tyrant | B+Tree 事務、游標遍歷 |
| 發布訂閱、流處理、地理空間、延遲隊列 | Redis | Stream、Pub/Sub、Geo、模塊生態 |
實戰避坑指南
- Redis 內存爆炸:啟用
maxmemory-policy allkeys-lru,定期 MEMORY STATS、BIGKEYS 掃描大鍵。
- TT 寫入阻塞:調整
#bnum (Hash 桶數)、#opts (壓縮/同步參數),使用 mtserver 多線程提升並發。
- 雙寫一致性:若 Redis 作緩存、TT 作持久層,採用「先寫 TT 再刪 Redis」或 Canal 同步 Binlog。
- 遷移工具:
redis-migrate-tool、rdb-tools 解析 RDB 導入 TT。
總結
Redis = 高性能內存數據結構服務器,適合熱數據、實時場景;Tokyo Tyrant = 磁盤優化的持久化 KV 引擎,適合冷數據、大容量、範圍查詢。現代架構常混合部署:Redis 做前端緩存/計算,TT/DB 做落地存儲。