首页 > 数据库 >redis在添加键值时报错"(error) MOVED...."

redis在添加键值时报错"(error) MOVED...."

时间:2023-10-15 19:01:02浏览次数:38  
标签:6002 133.97 6001 redis 133.99 MOVED 192.168 键值

问题描述:redis在添加键值时报错"(error) MOVED....",如下所示:
数据库:redis 6.2.5
架构:三主三从
1、异常重现
192.168.133.97:6001> set k1 v1
(error) MOVED 12706 192.168.133.99:6001

--集群信息
192.168.133.97:6001> cluster nodes
b98cc2012f531244c29e2633f3d40ffc0c8bb271 192.168.133.98:6002@16002 slave dddef88bf455737ced62b5616a6c2385a378904b 0 1697364806758 1 connected
db41da6a340ae7a4d0a0ade5a9c589eb57cd0def 192.168.133.99:6002@16002 slave 61090aa7cfad982cf7cd8c621201463300bcf28e 0 1697364803454 3 connected
dddef88bf455737ced62b5616a6c2385a378904b 192.168.133.97:6001@16001 myself,master - 0 1697364801000 1 connected 0-5460
3b9eb0521dea131c4804ec425174c632444b61b4 192.168.133.97:6002@16002 slave 7244035eceac38f647904276913ad9d6156613ec 0 1697364805649 5 connected
61090aa7cfad982cf7cd8c621201463300bcf28e 192.168.133.98:6001@16001 master - 0 1697364804000 3 connected 5461-10922
7244035eceac38f647904276913ad9d6156613ec 192.168.133.99:6001@16001 master - 0 1697364805000 5 connected 10923-16383

2、原因分析
造成此异常,通常是以下两种原因:
1)启动 redis-cli时未设置集群模式;
2)开启集群后,redis-cli用普通用户登录无法操作集群数据,需加上-c,采用集群模式登录.

3、解决过程
192.168.133.97:6001> exit
You have new mail in /var/spool/mail/redis

[redis@redis-leo-master ~]$ /opt/redis/bin/redis-cli -h 192.168.133.97 -c -p 6001 -a rcpassword1 
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.133.97:6001> set k1 v1
-> Redirected to slot [12706] located at 192.168.133.99:6001
OK
192.168.133.99:6001> get k1
"v1"

说明:如上所示,添加-c登录数据库后,成功添加键值k1.

4、数据验证
192.168.133.99:6001> exit
You have new mail in /var/spool/mail/redis
[redis@redis-leo-master ~]$ /opt/redis/bin/redis-cli -h 192.168.133.97 -c -p 6002 -a rcpassword1
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.133.97:6002> get k1
-> Redirected to slot [12706] located at 192.168.133.99:6001
"v1"
192.168.133.97:6002> exit
[redis@redis-leo-master ~]$ /opt/redis/bin/redis-cli -h 192.168.133.98 -c -p 6002 -a rcpassword1 
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.133.98:6002> get k1
-> Redirected to slot [12706] located at 192.168.133.99:6001
"v1"
192.168.133.98:6001> exit
[redis@redis-leo-master ~]$ /opt/redis/bin/redis-cli -h 192.168.133.99 -c -p 6002 -a rcpassword1 
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.133.99:6002> get k1
-> Redirected to slot [12706] located at 192.168.133.99:6001
"v1"

说明:如上所示,数据在其它节点成功显示.

参考文档:https://blog.csdn.net/MyNAMS/article/details/119940960

标签:6002,133.97,6001,redis,133.99,MOVED,192.168,键值
From: https://blog.51cto.com/u_12991611/7873051

相关文章

  • 轻松掌握组件启动之Redis集群扩展秘籍:轻松扩容与缩容,释放高性能潜能
    扩展集群操作扩容在我们原始的集群基础上,我们决定增加一台主节点(8007)和一台从节点(8008),这样新增的节点将会在下图中以虚线框的形式显示在集群中。1:首先,在/usr/local/redis-cluster目录下创建两个文件夹,分别命名为8007和8008。接下来,将8001文件夹下的redis.conf......
  • Redis缓存系统常见问题及解决方案
    首先了解以下Redis缓存机制Redis缓存基于内存,查询时先进入Redis缓存,如若查询不到,则进入MySQL数据库查询信息。数据库取到则更新缓存并返回结果,否则返回空。   缓存穿透问题什么是缓存穿透当用户在Redis缓存系统执行一条无效查询时,这条无效查询将穿透Redis缓存系......
  • Docker 安装Redis
    一、下载redis镜像dockerpullredis二、创建数据卷映射路径、配置redis.confmkdir-p/usr/local/myredis/confvimredis.conf#redis.confappendonlyyes配置内容可以参考https://github.com/redis/redis/blob/unstable/redis.conf启用内存过渡分配#修改配......
  • java——redis随笔——实战——商户查询缓存
                      把key做了下代码优化: /***根据id查询商铺信息*@paramid商铺id*@return商铺详情数据*/@OverridepublicResultqueryById(Longid){//key要唯......
  • php反序列化键值逃逸
    又遇到键值逃逸了。这里提前说一下我的理解吧,这次理解比上几次遇到字符串逃逸还要深刻一点。譬如这次我是先写逃逸payload,然后使用"}; 闭合第一个逃逸部分,然后在后续插入新的字符串,也就是更改可控值,再用一次 "};闭合后续字符串。 详细的看题目吧。来自:[0CTF2016]piapiap......
  • Redis分布式锁实现一直到Redis相关操作总结
    FreeRedis实现源码///<summary>///开启分布式锁,若超时返回null///</summary>///<paramname="name">锁名称</param>///<paramname="timeoutSeconds">超时(秒)</param>///<paramname="autoDelay">自动延长锁超时时......
  • Spring Boot + Redis 延时双删功能,实战来了!
    一、业务场景在多线程并发情况下,假设有两个数据库修改请求,为保证数据库与redis的数据一致性,修改请求的实现中需要修改数据库后,级联修改Redis中的数据。请求一:A修改数据库数据B修改Redis数据请求二:C修改数据库数据D修改Redis数据并发情况下就会存在A—>C—>D—>B的情......
  • 2023-10-13 (error) ERR Client sent AUTH, but no password is set ==》redis访问密
    当你尝试在redis终端输入authxxx(auth是固定值,xxx是你的密码),然后终端报错:(error)ERRClientsentAUTH,butnopasswordisset意思:(错误)ERR客户端发送了AUTH,但未设置密码。原因:你没有设置redis访问密码。当然如果你非要设置访问密码,那么你可以在redis根目录找到redis.windo......
  • Redis中的Big Key问题:排查与解决思路
    本文已收录至GitHub,推荐阅读......
  • Redisson使用延时队列
    延时队列在开发中,有时需要使用延时队列。比如,订单15分钟内未支付自动取消。jdk延时队列如果使用jdk自带的延时队列,那么服务器挂了或者重启时,延时队列里的数据就会失效,可用性比较差。Redisson延时队列可以使用Redisson的延时队列。Redisson的配置,详情见:https://blog.csdn.n......