KvRocks
- Apache KvRocks
- sicne 2019
- distributed, RocksDB, Redis protocol
- 支持 Namespace
- apache/kvrocks-controller
- Apache-2.0, Go
- 参考
- 支持的命令
- 支持 BF, JSON, GEO, FT
- MOVEX 在 namespace 之间移动 key
- 支持的命令
caution
- 不推荐使用,除非只是需要一个分布式 kv 内存存储而不是 Redis
- Redis 4.0.0 兼容,部分 client 不支持
- 例如 bullmq 要求 5.0+
REDIS_PASSWORD=$(openssl rand -base64 32)
docker run -it -p 6666:6666 apache/kvrocks --bind 0.0.0.0 --port 6666 --requirepass $REDIS_PASSWORD --redis-cursor-compatible=true
- requirepass 对应的用户为 admin
- namespace 需要通过配置持久化
__namespace
默认
namespace add ns1 my_token # Token 绑定到 Namespace
namespace set ns1 new_token # 修改 Token
namespace get * # 列出所有 Namespace
auth ns1 my_token # 切换 Namespace
namespace del ns1 # 删除 Namespace
compact # 执行 rocksdb 的 compact - 释放磁盘空间
配置
# 配置定义 namespace
namespace.NS TOKEN_FOR_NS
# ⚠️ 不能事后更改
cluster-enabled no
internal
+-------------+-------------+------------------------------+-----------------+------------+-------------+-----------+
| ns size | namespace | cluster slot | user key size | user key | version | sub key |
| (1byte: X) | (Xbyte) | (2byte when cluster enabled) | (4byte: Y) | (YByte) | (8byte) | (ZByte) |
+-------------+-------------+------------------------------+-----------------+------------+-------------+-----------+
+----------------------------------------+
| flags |
+----------------------------------------+
| (1byte: | version -> <- data type |) |
+----------------------------------------+