用户在连接到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 |
× |
× |
暂不支持事务相关操作。 |