事情的起因源于近期测试环境调整,Redis的集群Server从阿里云迁移到机房,机房自建Redis使用的5.0.8版本的docker镜像建立的集群,切换到自建Redis之后,测试环境业务发生问题,获取的Redis数据值为null, 百思不得其解,很神奇,和运维同事探讨,无法定位原因,因为服务本身没有调整过,初步感觉是Redis集群的问题,但就是无法解释。将连接切换阿里云使用没有问题,切回自建Redis问题依旧,因为有的服务使用的是SpringBoot默认的Lettuce客户端,有的服务因为用到了分布式锁,使用的Redisson客户端,现象是用到了Redisson的客户端使用RedisTemplate就无法获取到数据,所以立刻写了Demo调试。在使用Lettuce的服务上写入Redis,读取Redis没有问题,使用Redisson的服务上读取redis对应Key的数据时显示为null. 最后协调运维,又重新组建了一个新的Redis集群,并控制台启动Redis服务并查看启动后的日志信息,果然发现了报错信息

redis6 | 1:S 06 Jul 2021 05:59:42.285 * Retrying with SYNC...
redis6 | 1:S 06 Jul 2021 05:59:42.285 # MASTER aborted replication with an error: NOAUTH Authentication required.
redis4 | 1:S 06&nbs

本文讲述了在将Redis集群从阿里云迁移到机房自建过程中遇到的问题,即数据获取为null。经过排查,发现原因是Redis主从节点间的授权问题,主节点设置了密码,而从节点未配置masterauth。解决方法是确保主从节点requirepass和masterauth配置一致。此外,还讨论了requirepass和masterauth的区别以及如何避免类似问题。
最低0.47元/天 解锁文章
2022





