开发者社区 问答 正文

支持的 Redis 命令有什么


云数据库 Redis 版兼容 Redis 3.0 版本,支持 Redis 3.0 的 Geo 命令。目前还有小部分暂未开放的命令和受限制的命令。

支持的命令操作

Keys(键)String(字符串)Hash(哈希表)List(列表)Set(集合)SortedSet(有序集合)
DELAPPENDHDELBLPOPSADDZADD
DUMPBITCOUNTHEXISTSBRPOPSCARDZCARD
EXISTSBITOPHGETBRPOPLPUSHSDIFFZCOUNT
EXPIREBITPOSHGETALLLINDEXSDIFFSTOREZINCRBY
EXPIREATDECRHINCRBYLINSERTSINTERZRANGE
MOVEDECRBYHINCRBYFLOATLLENSINTERSTOREZRANGEBYSCORE
PERSISTGETHKEYSLPOPSISMEMBERZRANK
PEXPIREGETBITHLENLPUSHSMEMBERSZREM
PEXPTREATGETRANGEHMGETLPUSHXSMOVEZREMRANGEBYRANK
PTTLGETSETHMSETLRANGESPOPZREMRANGEBYSCORE
RANDOMKEYINCRHSETLREMSRANDMEMBERZREVRANGE
RENAMEINCRBYHSETNXLSETSREMZREVRANGEBYSCORE
RENAMENXINCRBYFLOATHVALSLTRIMSUNIONZREVRANK
RESTOREMGETHSCANRPOPSUNIONSTOREZSCORE
SORTMSETRPOPLPUSHSSCANZUNIONSTORE
TTLMSETNXRPUSHZINTERSTORE
TYPEPSETEXRPUSHXZSCAN
SCANSETZRANGEBYLEX
OBJECTSETBITZLEXCOUNT
SETEXZREMRANGEBYLEX
SETNX
SETRANGE
STRLEN

以及
HyperLogLogPub/Sub(发布/订阅)Transaction(事务)Connection(连接)Server(服务器)Scripting(脚本)Geo(地理位置)
PFADDPSUBSCRIBEDISCARDAUTHFLUSHALLEVALGEOADD
PFCOUNTPUBLISHEXECECHOFLUSHDBEVALSHAGEOHASH
PFMERGEPUBSUBMULTIPINGDBSIZESCRIPT EXISTSGEOPOS
PUNSUBSCRIBEUNWATCHQUITTIMESCRIPT FLUSHGEODIST
SUBSCRIBEWATCHSELECTINFOSCRIPT KILLGEORADIUS
UNSUBSCRIBEKEYSSCRIPT LOADGEORADIUSBYMEMBER
CLIENT KILL
CLIENT LIST
CLIENT GETNAME
CLIENT SETNAME
CONFIG GET
MONITOR
SLOWLOG


暂未开放的命令

Keys(键)Server(服务器)
MIGRATEBGREWRITEAOF
BGSAVE
CONFIG REWRITE
CONFIG SET
CONFIG RESETSTAT
COMMAND
COMMAND COUNT
COMMAND GETKEYS
COMMAND INFO
DEBUG OBJECT
DEBUG SEGFAULT
LASTSAVE
ROLE
SAVE
SHUTDOWN
SLAVEOF
SYNC


集群实例不支持的命令

ScriptingKeysServer
EVALSCANCLIENT KILL
EVALSHACLIENT LIST
SCRIPT EXISTSCLIENT GETNAME
SCRIPT FLUSHCLIENT SETNAME
SCRIPT KILLMONITOR
SCRIPT LOAD


集群实例受限的命令

KeysStringsListsSetsSorted SetsHyperLogLogTransaction
RENAMEMSETNXRPOPLPUSHSINTERSTOREZUNIONSTOREPFMERGEDISCARD
RENAMENXSINTERZINTERSTOREPFCOUNTEXEC
SORTSUNIONSTOREMULTI
SUNIONUNWATCH
SDIFFSTOREWATCH
SDIFF
SMOVE

[backcolor=transparent]说明:

  • 受限命令只支持所操作 key 均分布在单个 hash slot 中的场景,没有实现多个 hash slot 数据的合并功能,因此需要用 hash tag 的方式确保要操作的 key 均分布在一个 hash slot 中。
    比如有 key1,aakey,abkey3,那么我们在存储的时候需要用 {key}1,aa{key},ab{key}3 的方式存储,这样调用受限命令时才能生效。具体关于 hash tag 的用法请参见 Redis 官方文档:http://redis.io/topics/cluster-spec

  • 关于 Redis 命令的详细信息,请参见官方文档

展开
收起
云栖大讲堂 2017-10-30 10:19:42 1923 分享
分享
版权
举报
阿里云 AI 助理回答

阿里云的云数据库 Redis 版确实兼容 Redis 3.0 版本,并且支持大部分 Redis 3.0 命令,包括但不限于键操作、字符串、哈希表、列表、集合、有序集合等数据类型的操作命令。它还特别提到了对Geo(地理位置)相关命令的支持,这使得用户能够在Redis中执行地理空间操作。

然而,有部分命令由于各种原因暂未开放,这些命令主要涉及Keys管理、服务器配置与管理等方面,例如MIGRATE, BGREWRITEAOF, BGSAVE, 和一系列CONFIG相关的命令。这些命令可能因为安全考虑、运维策略或集群架构的限制而未被提供。

对于集群实例,还有一些特定的限制。脚本(Scripting)、某些Keys操作以及直接的Server管理命令在集群模式下不被支持,因为这些操作可能影响到集群的一致性或管理复杂度。此外,一些命令在集群实例中是受限使用的,意味着它们仅在所操作的key都位于同一个hash slot时才能正常工作。为了确保这类受限命令能够生效,用户需要通过使用hash tag来确保相关key存储在同一hash slot上,遵循Redis集群规范中的建议。

用户在设计应用和数据模型时,应参考上述信息,合理选择和使用Redis命令,特别是当部署在阿里云的Redis集群版上时,要特别注意命令的适用性和任何潜在的限制。如果需要更详细的信息,可以查阅Redis官方文档或者直接咨询阿里云的技术支持获取帮助。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等