用戶在連接到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 |
× |
× |
暫不支持事務相關操作。 |