Skip to main content

KvRocks

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 |) |
+----------------------------------------+