用户在连接到GeminiDB Redis数据库后,需要关注以下支持以及限制的命令。
String类型
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| append |
√ |
√ |
× |
- |
| decr |
√ |
√ |
× |
- |
| decrby |
√ |
√ |
× |
- |
| get |
√ |
√ |
× |
- |
| getbit |
√ |
√ |
× |
- |
| getrange |
√ |
√ |
× |
- |
| getset |
√ |
√ |
× |
- |
| incr |
√ |
√ |
× |
- |
| incrby |
√ |
√ |
× |
- |
| incrbyfloat |
√ |
√ |
× |
- |
| mget |
√ |
√ |
√ |
O(n) |
| mset |
√ |
√ |
√ |
O(n) |
| msetnx |
√ |
√ |
√ |
O(n) |
| psetex |
√ |
√ |
× |
- |
| set |
√ |
√ |
× |
- |
| setbit |
√ |
√ |
× |
- |
| setex |
√ |
√ |
× |
- |
| setnx |
√ |
√ |
× |
- |
| setrange |
√ |
√ |
× |
- |
| strlen |
√ |
√ |
× |
- |
Hash类型
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| hdel |
√ |
√ |
× |
- |
| hexists |
√ |
√ |
× |
- |
| hget |
√ |
√ |
× |
- |
| hgetall |
√ |
√ |
× |
O(n) |
| hincrby |
√ |
√ |
× |
- |
| hincrbyfloat |
√ |
√ |
× |
- |
| hkeys |
√ |
√ |
× |
O(n) |
| hlen |
√ |
√ |
× |
- |
| hmget |
√ |
√ |
× |
O(n) |
| hmset |
√ |
√ |
× |
O(n) |
| hscan |
√ |
√ |
× |
部分兼容。在新建连接中首次执行hscan命令,需要从0开始扫描。如需分多次进行一轮完整扫描,需保持在同一个长连接中操作。 |
| hset |
√ |
√ |
× |
- |
| hsetnx |
√ |
√ |
× |
- |
| hstrlen |
√ |
√ |
× |
- |
| hvals |
√ |
√ |
× |
O(n) |
List类型
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| blpop |
× |
× |
× |
该命令具有block语义,暂不实现。 |
| brpop |
× |
× |
× |
该命令具有block语义,暂不实现。 |
| brpoplpush |
× |
× |
× |
该命令具有block语义,暂不实现。 |
| lindex |
√ |
√ |
× |
- |
| linsert |
√ |
√ |
× |
O(n) |
| llen |
√ |
√ |
× |
- |
| lpop |
√ |
√ |
× |
- |
| lpush |
√ |
√ |
× |
- |
| lpushx |
√ |
√ |
× |
- |
| lrange |
√ |
√ |
× |
O(n) |
| lrem |
√ |
√ |
× |
O(n) |
| lset |
√ |
√ |
× |
- |
| ltrim |
√ |
√ |
× |
O(n) |
| rpop |
√ |
√ |
× |
- |
| rpoplpush |
√ |
√ |
√ |
- |
| rpush |
√ |
√ |
× |
- |
| rpushx |
√ |
√ |
× |
- |
Set类型
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| sadd |
√ |
√ |
× |
- |
| scard |
√ |
√ |
× |
- |
| sdiff |
√ |
√ |
√ |
O(m*k)k为集合个数,m为集合内元素个数。 |
| sdiffstore |
√ |
√ |
√ |
O(m*k)k为集合个数,m为集合内元素个数。 |
| sinter |
√ |
√ |
√ |
O(m*n) |
| sinterstore |
√ |
√ |
√ |
O(m*n) |
| sismember |
√ |
√ |
× |
- |
| smembers |
√ |
√ |
× |
O(n) |
| smove |
√ |
√ |
√ |
- |
| spop |
√ |
√ |
× |
- |
| srandmember |
√ |
√ |
× |
O(n) |
| srem |
√ |
√ |
× |
- |
| sscan |
√ |
√ |
× |
部分兼容。在新建连接中,首次执行sscan命令时,需要从0开始扫描。如果需要分多次进行一轮完整扫描,需保持在同一个长连接中操作。 |
| sunion |
√ |
√ |
√ |
O(m*k)k为集合个数,m为集合内元素个数。 |
| sunionstore |
√ |
√ |
√ |
O(m*k)k为集合个数,m为集合内元素个数。 |
ZSet类型
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| bzpopmax |
× |
× |
× |
该命令具有block语义,暂不实现。 |
| bzpopmin |
× |
× |
× |
该命令具有block语义,暂不实现。 |
| zadd |
√ |
√ |
× |
- |
| zcard |
√ |
√ |
× |
- |
| zcount |
√ |
√ |
× |
O(n) |
| zincrby |
√ |
√ |
× |
- |
| zinterstore |
√ |
√ |
√ |
O(m*n) |
| zlexcount |
√ |
√ |
× |
O(n) |
| zpopmax |
√ |
√ |
× |
- |
| zpopmin |
√ |
√ |
× |
- |
| zrange |
√ |
√ |
× |
O(n) |
| zrangebylex |
√ |
√ |
× |
O(n) |
| zrangebyscore |
√ |
√ |
× |
O(n) |
| zrank |
√ |
√ |
× |
O(n) |
| zrem |
√ |
√ |
× |
- |
| zremrangebylex |
√ |
√ |
× |
O(n) |
| zremrangebyrank |
√ |
√ |
× |
O(n) |
| zremrangebyscore |
√ |
√ |
× |
O(n) |
| zrevrange |
√ |
√ |
× |
O(n) |
| zrevrangebylex |
√ |
√ |
× |
O(n) |
| zrevrangebyscore |
√ |
√ |
× |
O(n) |
| zrevrank |
√ |
√ |
× |
O(n) |
| zscan |
√ |
√ |
× |
部分兼容。在新建连接中,首次执行zscan命令,需要从0开始扫描。如果需要分多次进行一轮完整扫描,需保持在同一个长连接中操作。 |
| zscore |
√ |
√ |
× |
- |
| zunionstore |
√ |
√ |
√ |
- |
Stream类型
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| xack |
√ |
√ |
× |
- |
| xadd |
√ |
√ |
× |
- |
| xclaim |
√ |
√ |
× |
- |
| xdel |
√ |
√ |
× |
- |
| xgroup |
√ |
√ |
× |
- |
| xinfo |
√ |
√ |
× |
O(n) |
| xlen |
√ |
√ |
× |
- |
| xpending |
√ |
√ |
× |
- |
| xrange |
√ |
√ |
× |
- |
| xread |
√ |
× |
√ |
部分兼容。xread命令会占用内部有限连接资源,使用时必须搭配BLOCK选项设置超时时间,避免持续占用内部连接资源,影响其他命令的正常执行。 |
| xreadgroup |
√ |
× |
× |
部分兼容。xreadgroup命令会占用内部有限连接资源,使用时必须搭配BLOCK选项设置超时时间,避免持续占用内部连接资源,影响其他命令的正常执行。 |
| xrevrange |
√ |
√ |
× |
- |
| xsetid |
x |
× |
× |
暂不支持。 |
| xtrim |
√ |
√ |
× |
O(n) |
Hyperloglog类型
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| pfadd |
√ |
√ |
× |
- |
| pfcount |
√ |
√ |
√ |
- |
| pfdebug |
× |
× |
× |
暂不支持。 |
| pfmerge |
√ |
√ |
√ |
O(n) |
| pfselftest |
x |
× |
× |
暂不支持。 |
Geo类型
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| geoadd |
√ |
√ |
× |
- |
| geodist |
√ |
√ |
× |
- |
| geohash |
√ |
√ |
× |
- |
| geopos |
√ |
√ |
× |
- |
| georadius |
√ |
√ |
√ |
O(N+logM)如果该命令搭配store、storedist选项使用,相当于使用了多key,此时需要给多key增加相同hashtag。 |
| georadius_ro |
x |
× |
× |
暂不支持。 |
| georadiusbymember |
√ |
√ |
√ |
O(N+logM) |
| georadiusbymember_ro |
x |
× |
× |
暂不支持。 |
Bitop类型
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| bitcount |
√ |
√ |
× |
- |
| bitfield |
√ |
√ |
× |
- |
| bitop |
√ |
√ |
√ |
- |
| bitpos |
√ |
√ |
× |
- |
Key管理
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| debug |
x |
× |
× |
暂不支持。 |
| del |
√ |
√ |
√ |
- |
| dump |
x |
× |
× |
暂不支持。 |
| exists |
√ |
√ |
√ |
- |
| expire |
√ |
√ |
× |
- |
| expireat |
√ |
√ |
× |
- |
| migrate |
x |
× |
× |
暂不支持。 |
| move |
x |
× |
× |
暂不支持。 |
| object |
x |
× |
× |
内部存储协议与开源不同,不支持查看。 |
| persist |
√ |
√ |
× |
- |
| pexpire |
√ |
√ |
× |
- |
| pexpireat |
√ |
√ |
× |
- |
| pttl |
√ |
√ |
× |
- |
| randomkey |
√ |
√ |
× |
- |
| rename |
x |
× |
× |
暂不支持。 |
| renamenx |
x |
× |
× |
暂不支持。 |
| restore |
x |
× |
× |
持久化存储原理不同,不涉及该命令。 |
| restore-asking |
x |
× |
× |
持久化存储原理不同,不涉及该命令。 |
| scan |
√ |
× |
× |
部分兼容。在新建连接中,首次执行scan命令,需要从0开始扫描。如需分多次进行一轮完整扫描,需保持在同一个长连接中操作。 |
| sort |
√ |
√ |
√ |
部分兼容。暂不支持store选项,即按照给定规则排序后,不能自动按序转储到另一个key中。 |
| touch |
x |
× |
× |
暂不支持。 |
| ttl |
√ |
√ |
× |
- |
| type |
√ |
√ |
× |
部分兼容。如果不同数据类型使用了同名key,则type命令按照 string、hash、list、zset、set、stream的顺序查找key,并返回第一个找到的类型。 |
| unlink |
√ |
√ |
√ |
- |
数据库管理
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| auth |
√ |
× |
× |
- |
| bgrewriteaof |
x |
× |
× |
持久化存储原理不同,不涉及该命令。 |
| bgsave |
x |
× |
× |
持久化存储原理不同,不涉及该命令。 |
| client |
√ |
× |
× |
部分兼容。仅支持client list命令。 |
| command |
√ |
× |
× |
- |
| config |
√ |
× |
× |
部分兼容。暂不支持通过config set命令调整参数。 |
| dbsize |
√ |
√ |
× |
部分兼容。由于采用MVCC机制,查询结果为key数量的预估值,非实时的准确值。在执行flushall之后,dbsize为0。 |
| echo |
√ |
√ |
× |
- |
| flushall |
√ |
× |
× |
该命令会导致实例所有数据被清空,请谨慎使用。 |
| flushdb |
√ |
× |
× |
- |
| info |
√ |
× |
× |
部分兼容。较开源redis增加了部分信息项。 |
| info keyspace |
× |
× |
× |
- |
| info capacity |
√ |
√ |
× |
仅GeminiDB Redis支持该命令。查询结果为磁盘容量的预估值,非实时的准确值。执行flushall之后,建议通过dbsize命令查看数据是否清空。 |
| keys |
x |
× |
× |
高危命令,不允许用户执行。 |
| lastsave |
x |
× |
× |
持久化存储原理不同,不涉及该命令。 |
| latency |
x |
× |
× |
暂不支持。 |
| lolwut |
x |
× |
× |
开源redis彩蛋命令。 |
| memory |
x |
× |
× |
使用云服务时无需关心系统状态,暂不开放。 |
| module |
x |
× |
× |
暂不支持。 |
| monitor |
x |
× |
× |
内部命令,不允许用户执行。 |
| ping |
√ |
√ |
× |
- |
| post |
x |
× |
× |
暂不支持。 |
| psync |
x |
× |
× |
不存在主从关系,相关命令不涉及。 |
| replconf |
x |
× |
× |
不存在主从关系,相关命令不涉及。 |
| replicaof |
x |
× |
× |
不存在主从关系,相关命令不涉及。 |
| role |
x |
× |
× |
不存在主从关系,相关命令不涉及。 |
| save |
x |
× |
× |
持久化存储原理不同,不涉及该命令。 |
| shutdown |
× |
× |
× |
不支持。 |
| slaveof |
x |
× |
× |
不存在主从关系,相关命令不涉及。 |
| slowlog |
x |
× |
× |
可通过管理控制台2.3.8.1 慢日志。 |
| sync |
x |
× |
× |
不存在主从关系,相关命令不涉及。 |
| time |
√ |
√ |
× |
- |
| select |
√ |
× |
× |
- |
| swapdb |
x |
× |
× |
- |
脚本
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| eval |
√ |
× |
√ |
详情请参见Lua脚本规范。 |
| evalsha |
√ |
× |
√ |
详情请参见Lua脚本规范。 |
| script |
√ |
× |
× |
详情请参见Lua脚本规范。 |
Pub/Sub类型
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| psubscribe |
√ |
× |
× |
在执行pub/sub命令的连接时,不允许执行常规命令(如set/get等),因为GaussDB(forRedis)多线程架构下,常规命令会通过多线程执行来提升性能,但是由于pubsub命令采用专有线程处理,普通命令和pubsub混用连接后会导致普通命令也无法使用多线程,从而影响影响性能。 |
| publish |
√ |
× |
× |
- |
| pubsub |
√ |
× |
× |
- |
| punsubscribe |
√ |
× |
× |
- |
| subscribe |
√ |
× |
× |
在执行pub/sub命令的连接时,不允许执行常规命令(如set/get等),因为GeminiDB Redis多线程架构下,常规命令会通过多线程执行来提升性能,但是由于pubsub命令采用专有线程处理,普通命令和pubsub混用连接后会导致普通命令也无法使用多线程,从而影响影响性能。 |
| unsubscribe |
√ |
× |
× |
- |
事务
| 命令名称 |
GeminiDB Redis是否支持该命令 |
是否支持在Lua脚本中执行 |
是否需要给多key增加相同hashtag |
备注 |
| discard |
x |
× |
× |
暂不支持事务相关操作。 |
| exec |
x |
× |
× |
暂不支持事务相关操作。 |
| multi |
x |
× |
× |
暂不支持事务相关操作。 |
| unwatch |
x |
× |
× |
暂不支持事务相关操作。 |
| wait |
x |
× |
× |
暂不支持事务相关操作。 |
| watch |
x |
× |
× |
暂不支持事务相关操作。 |