如何处理 bigkey?
1. 监控 +手动清理:Redis 4.0+ 可以使用 UNLINK
命令来异步删除一个或多个指定的 key。
2.渐进式删除 Api如
list strim
set srem
hash hdel
3..分割 bigkey:将一个 bigkey 分割为多个小 key
比如一个大哈希表,拆分策略:基于哈希字段的哈希值分割到分片 例如
hash_slot = crc32(field) % 10
big_hash = {
"user:1001": {"name": "Alice", "age": 30},
"user:1002": {"name": "Bob", "age": 24},
...
}
取 field = "user:1001" ---> hash_slot