命令兼容列表
GeminiDB(Redis接口)提供集群版和主备版,兼容社区 Redis 7.0、6.2、5.0及以下版本。具体请以本文命令兼容性描述为准。迁移前建议根据业务实际使用命令进行兼容性核对。
本章节详细介绍GeminiDB (Redis 接口) Redis 5.0、Redis 6.2(包含6.2.x)、Redis 7.0命令兼容性,供DBA和开发参考。
GeminiDB基础命令
针对社区Redis提供的全部命令类型,GeminiDB 5.0、6.2(包含6.2.x)和7.0兼容情况如下:
| Redis命令分类 | 命令详情 | GeminiDB Redis 5.0兼容情况 | GeminiDB Redis 6.2(包含6.2.x)兼容情况 | GeminiDB Redis 7.0兼容情况 |
|---|---|---|---|---|
| String | 100%兼容 | 100%兼容 | 100%兼容 | |
| Hash | 100%兼容 | 100%兼容 | 100%兼容 | |
| List | 100%兼容 | 100%兼容 | 100%兼容 | |
| Sorted set | 100%兼容 | 100%兼容 | 100%兼容 | |
| Set | 100%兼容 | 100%兼容 | 100%兼容 | |
| Bitmap | 100%兼容 | 100%兼容 | 100%兼容 | |
| Stream | 100%兼容 | 暂不支持xgroup子命令createconsumer | 暂不支持7.0特性 | |
| Geo | 100%兼容 | 100%兼容 | 100%兼容 | |
| Hyperloglog | 100%兼容 | 100%兼容 | 100%兼容 | |
| 发布订阅(Pub/Sub) | 100%兼容 | 100%兼容 | 100%兼容 | |
| Lua脚本(Scripting) | 100%兼容 | 100%兼容 | 暂不支持7.0特性 | |
| 事务(Transactions) | 100%兼容 | 100%兼容 | 100%兼容 | |
| 其他通用Key操作 | 暂不支持2个命令: SWAPDB、MOVE | 暂不支持2个命令: SWAPDB、MOVE | 100%兼容 |
GeminiDB Redis兼容支持部分Cluster命令族的命令,具体为CLUSTER INFO、CLUSTER KEYSLOT、CLUSTER MYID、CLUSTER NODES、CLUSTER SLOTS、CLUSTER SHARDS、CLUSTER HELP。
GeminiDB高级命令
- ExHash类型
- 使用场景:GeminiDB支持为Hash Key的每个Field设置过期时间,适用于构建频控、购物车等业务。
- 命令列表:请参考ExHash命令列表。
- 使用方式:请参考广告频控业务ExHash方案。
- 布隆过滤器(BloomFilter)类型
- 功能介绍:布隆过滤器(BloomFilter)可用于检索某个元素是否存在于某个海量集合中,适用于Web拦截器、防缓存穿透等场景。
- 命令列表:请参考布隆过滤器(Bloom Filter)介绍。
- 使用方式:请参考布隆过滤器(Bloom Filter)命令说明。
GeminiDB运维管理命令
GeminiDB在社区Redis的INFO/CLIENT/SLOWLOG/MONITOR/CONFIG等运维管理命令能力基础上,提供全面服务化且高度易用的DBA运维能力。
| GeminiDB运维功能 | GeminiDB运维功能简介 | 社区Redis同类命令/能力 |
|---|---|---|
| 监控指标 | 提供命令级别QPS/平均时延/P99时延指标。提供丰富节点级指标以及实例级汇聚指标。 | INFO |
| 实例会话 | 展示客户端IP信息以及Top会话统计,支持一键批量Kill会话。 | CLIENT |
| 参数配置 | 支持一键查询与修改内核参数。是社区Redis CONFIG命令的能力加强版。 | CONFIG |
| 慢日志 | 展示慢日志及诊断信息。 | SLOWLOG |
| 用户权限管理 | 支持账号管理功能。 | ACL (Access Control List) |
| 审计日志 | 审计高危命令操作。 | MONITOR |
| 实时大Key诊断 | 实时观测大Key信息,不影响业务。 | 不支持 |
| 实时热Key诊断 | 实时观测热Key情况,不影响业务。 | 不支持 |
| 实时前缀Key分析 | 实时观测前缀Key分布,不影响业务。 | 不支持 |
| 高危命令重命名 | 支持修改命令别名以及查看重命名记录。 | 通过手动修改配置文件实现 |
| 异常Key熔断 | 一键屏蔽指定Key,拒绝被业务访问。用于快速恢复。 | 不支持 |
其它运维命令
为便于客户管理实例,GeminiDB Redis提供了一组运维命令,用于在客户特定场景业务下使用。
以下运维命令执行前,建议您在管理控制台右上角,选择“工单 > 新建工单”,联系客服进行咨询,避免错误操作导致业务受影响。
- rocksconf 命令:
语法:ROCKSCONF SETOPTION/ SETDBOPTION item value
用途:
- 根据业务的不同,可以使用该命令调整存储引擎RocksDB的参数,以适配业务需求。
- item是要调整的参数,value是需要设置的值, 具体可调整的值请查阅 RocksDB 资料。
- compact 命令
用途:
- 触发一次compact任务, 可以有效减少RocksDB墓碑,提高读性能和减少空间放大。
- type表示需要compact哪个数据类型,可选值:string, hash, zset, set, list。
- partition_id表示需要对哪个数据分片执行compact命令, 可以参考通过负载均衡地址连接实例(推荐)使用“info partitions”命令获取实例的分片信息。 如下图1 info partitions, “179b5efc712a506c ”就是一个合法的 partition_id
其它注意事项
- RESP(Redis Serialization Protocol)是 Redis 服务端与客户端之间通信的协议,GeminiDB Redis 暂不支持 RESP3 协议。由于主流客户端(如 Jedis)默认使用 RESP2 协议进行通信,因此在默认配置下可正常访问 GeminiDB Redis。
- GeminiDB Redis 7.0 版本暂不支持 `FUNCTION` 命令及相关功能。
若您的业务强依赖 RESP3 协议、Redis Function 或 Redis 7.0 的其他新增特性,请在迁移前进行兼容性改造,或在配置中关闭相关能力以确保持续运行。
