阿里云redis-proxy命令支持

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 阿里云集群模式下redis-proxy的命令支持情况及简要说明

client命令

client命令目前支持client list, setname, getname, kill四个sub command.

client list

client list列出所有连接到该proxy的所有user connection,字段和redis内核一样,id, age, idle, addr, fd, name, db, multi, omem, cmd字段和redis内核表达的意思一样。sub, psub在proxy层没作区分,要么都为1,要么都为0。qbuf, qbuf-free, obl, oll字段目前没有意义。

client setname

用法和redis内核一致

client getname

用法和redis内核一致

client kill

kill命令目前支持两种形式:

client kill ip:port
client kill addr ip:port

sunion, sdiff, sinter, sunionstore, sdiffstore, sinterstore, zinterstore, zunionstore

集群规格中,这几个命令不再要求所有key必须在同一个slot中,使用和主从版没区别。

事务

事务之前没有使用watch命令并且事务中都是单key命令场景不再要求所有key必须在同一个slot中,使用方式和直连redis完全一致,其他场景要求事务中所有命令的所有key必须在同一个slot中。
多key命令列表:

DEL, SORT, MGET, MSET, BITOP, EXISTS, MSETNX, RENAME, RENAMENX, BLPOP, BRPOP, RPOPLPUSH, BRPOPLPUSH, SMOVE, SUNION, SINTER, SDIFF, SUNIONSTORE, SINTERSTORE, SDIFFSTORE, ZUNIONSTORE, ZINTERSTORE, PFMERGE, PFCOUNT

不允许在事务中使用的命令列表:

WATCH, UNWATCH, RANDOMKEY, KEYS, SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, SCRIPT, EVAL, EVALSHA, SCAN, ISCAN, DBSIZE, ADMINAUTH, AUTH, PING, ECHO, FLUSHDB, FLUSHALL, MONITOR, IMONITOR, RIMONITOR, INFO, IINFO, RIINFO, CONFIG, SLOWLOG, TIME, CLIENT

info命令

redis原生的info命令中最多可以带一个可选的section,如下所示:

info [section]

目前阿里云redis集群规格中,部分命令限制所有key必须在同一个slot中,proxy新增info key命令查询key所属的slot,方便用户查询某些key是否在同一个slot中。

monitor命令

最新版的redis-proxy已经支持monitor命令,他会把所有节点上的monitor结果汇聚再吐出来,集群模式也可以使用imonitor,读写分离可以使用rimonitor来对特定节点执行monitor。

scan命令

最新版的redis-proxy已经支持scan命令,集群模式下仍然可以使用iscan命令来扫描特定节点。
需要注意的是,低版本jedis(<2.4.0)scan的实现中使用了int作为cursor,直接可能会扫描不到所有的数据。

阿里云redis自研命令

阿里云redis-proxy针对集群规格扩展了若干命令,方便集群用户的使用。

info key user_key

用于查某个key所在的slot和db,使用格式相对原生info命令作了扩展,增加一个sub command,redis-proxy把key后面的参数按照内部路由规则计算该参数所属的slot和db节点。

127.0.0.1:6379> info key test_key
slot:15118 node_index:0

注意:1.线上旧版本可能出现info key显示出来的node index和实例拓扑图的node index不一致,最新版本已经回复。用户可以通过info key命令来判断某些key是否在同一个slot或者db节点中。2.info key中显示的node 是指集群规格下后端的物理节点,和select命令中的db不是一个概念。

iinfo命令

iinfo命令是阿里云redis-proxy新增命令,用法类似info,用于在指定的redis节点上执行info命令。用法:

iinfo db_idx [section]

直接执行info命令,redis-proxy做了一些处理(redis-proxy把info转发给所有redis节点,然后对返回的结果有些字段取最大值,有些取平均值),如果要了解某个redis的info可以使用iinfo命令,db_idx的范围是[0, nodecount),nodecount可以通过info命令获取或者从控制台上查看实例拓扑图。

riinfo命令

和iinfo命令类似也是阿里云redis-proxy新增命令,但使用在读写分离的模式下。用法中增加了一个readonly slave的idx,用于指定在第几个readonly slave上执行info命令。在读写分离集群中可以用来在指定readonly slave上执行info命令。如果在非读写分离集群中使用,会返回错误。
用法:

riinfo db_idx ro_slave_idx [section]

iscan

iscan命令是阿里云redis-proxy新增命令,集群模式下可以在指定的db节点上执行scan命令。在scan命令的基础上扩展了一个参数用于指定db_idx, db_idx的范围是[0, nodecount), nodecount可以通过info命令获取或者从控制台上查看实例拓扑图。

iscan db_idx cursor [MATCH pattern] [COUNT count]

imonitor

imonitor也是阿里云redis-proxy新增命令,和iinfo, iscan类似,在monitor的基础上新增一个参数指定monitor执行的db_idx,db_idx的范围是[0, nodecount), nodecount可以通过info命令获取或者从控制台上查看实例拓扑图。

imonitor db_idx

rimonitor

rimonitor是阿里云redis-proxy自研命令,和riinfo类似,用于读写分离场景下,在指定的shard里的指定只读从库上执行monitor命令。

rimonitor db_idx ro_slave_idx

imonitor和rimonitor自研命令请使用telnet执行

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
NoSQL 应用服务中间件 API
Redis是如何建立连接和处理命令的
本文主要讲述 Redis 是如何监听客户端发出的set、get等命令的。
443 21
|
3月前
|
NoSQL Java Redis
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
这篇文章介绍了Redis的基本命令,并展示了如何使用Netty框架直接与Redis服务器进行通信,包括设置Netty客户端、编写处理程序以及初始化Channel的完整示例代码。
91 1
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
|
2月前
|
存储 NoSQL Java
Redis命令:列表模糊删除详解
通过本文的介绍,我们详细探讨了如何在Redis中实现列表的模糊删除。虽然Redis没有直接提供模糊删除命令,但可以通过组合使用 `LRANGE`和 `LREM`命令,并在客户端代码中进行模糊匹配,来实现这一功能。希望本文能帮助你在实际应用中更有效地操作Redis列表。
119 0
|
3月前
|
缓存 NoSQL 测试技术
Redis如何解决频繁的命令往返造成的性能瓶颈!
Redis如何解决频繁的命令往返造成的性能瓶颈!
|
3月前
|
缓存 NoSQL Redis
Redis命令:列表模糊删除详解
Redis命令:列表模糊删除详解
110 3
|
3月前
|
NoSQL 关系型数据库 MySQL
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
513 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
|
3月前
|
NoSQL Redis 数据安全/隐私保护
Redis 命令
10月更文挑战第15天
48 0
|
4月前
|
监控 NoSQL Redis
redis-server --service-install redis.windows.conf --loglevel verbose 命令的作用是什么?
redis-server --service-install redis.windows.conf --loglevel verbose 命令的作用是什么?
194 3
|
3月前
|
监控 NoSQL Redis
开发者如何使用阿里云Redis
【10月更文挑战第2天】开发者如何使用阿里云Redis
541 0
|
4月前
|
NoSQL 安全 容灾
阿里云DTS踩坑经验分享系列|Redis迁移、同步
阿里云数据传输服务DTS在帮助用户迁移Redis数据、同步数据时,在某些复杂场景下会出现报错,或者源库与目标库数据不一致的问题,给用户带来困扰。本文介绍了DTS Redis到Redis迁移、同步过程中的典型问题,以帮助用户更好地使用DTS。
304 2