目录

网页部署到宝塔服务器上,发送请求报错?org.springframework.data.redis.RedisSystemException,让我来看看

这几天在部署项目的时候会发现的一个问题是,配置都没有什么问题,但是进入网页操作功能的时候却报错了,报错是这样:

复制代码
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@57d08368] was not registered for synchronization because synchronization is not active
JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@5666456f] will not be managed by Spring
==> Preparing: select * from admins where account=?
==> Parameters: admin1(String)
<== Columns: aid, account, controller, password, manage_users, manage_meetings, manage_events, manage_check_ins, publish_news, edit_home_page, manage_propositions, manage_public, propositions_dep_id, public_dep_id, status, is_super_admin, registration_time, update_time, logout_time
<== Row: 2, admin1, 管理员叶子, *****, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 已注销, 0, 2025-02-09 04:27:13, 2025-03-19 22:44:36, 2025-03-01 18:55:59
<== Total: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@57d08368]
2025-04-09T09:29:53.088+08:00 ERROR 1771663 --- [nio-8090-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.data.redis.RedisSystemException: Error in execution] with root cause

io.lettuce.core.RedisReadOnlyException: READONLY You can't write against a read only replica.
at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:148) ~[lettuce-core-6.4.2.RELEASE.jar!/:6.4.2.RELEASE/f4dfb40]
at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:120) ~[lettuce-core-6.4.2.RELEASE.jar!/:6.4.2.RELEASE/f4dfb40]
at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:124) ~[lettuce-core-6.4.2.RELEASE.jar!/:6.4.2.RELEASE/f4dfb40]
at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:115) ~[lettuce-core-6.4.2.RELEASE.jar!/:6.4.2.RELEASE/f4dfb40]
at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:749) ~[lettuce-core-6.4.2.RELEASE.jar!/:6.4.2.RELEASE/f4dfb40]
at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:684) ~[lettuce-core-6.4.2.RELEASE.jar!/:6.4.2.RELEASE/f4dfb40]
at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:601) ~[lettuce-core-6.4.2.RELEASE.jar!/:6.4.2.RELEASE/f4dfb40]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[netty-transport-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357) ~[netty-transport-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[netty-transport-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868) ~[netty-transport-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[netty-transport-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) ~[netty-transport-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) ~[netty-transport-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) ~[netty-transport-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~[netty-transport-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.117.Final.jar!/:4.1.117.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.117.Final.jar!/:4.1.117.Final]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]

**主要原因是:io.lettuce.core.RedisReadOnlyException: READONLY You can't write against a read only replica.**这主要是指Redis实例被配置为只读副本(read-only replica)模式,但是应用程序却尝试对其进行写操作。

看到这个报错原因我就有点疑惑了,查了一下资料,都要操作修改好多地方,但是这时候我想到我的宝塔上是有部署redis的,针对我的这种情况,所以接下来,我直接一招解决:

启用重启大法!!!

事实证明,这个方法非常有用。几乎是出现一次这个问题,就重启一下。这个可能是跟我修改了配置文件有关,因为本地上的redis没有设置密码,但是在宝塔上操作的时候我随手设置了一个,导致在本地测试的时候我需要注释一下,然后有时候压缩jar包上传上去就会忘记恢复回来,就手动去修改了配置的文件。这是我想到的一个原因:本地开发和服务器部署时使用不同的Redis配置可能就会导致连接问题。

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
碧寒14 分钟前
Ubuntu系统18.04更新驱动解决方法
linux·运维·ubuntu
识途老码36 分钟前
Ningx负载均衡
运维·负载均衡
Bardb44 分钟前
05--MQTT物联网协议
linux·服务器·阿里云·json
红虾程序员1 小时前
Linux进阶命令
linux·服务器·前端
.R^O^1 小时前
VLAN的知识
linux·服务器·网络·mysql
今天多喝热水2 小时前
Redis适用场景
数据库·redis
小袁拒绝摆烂3 小时前
Redis-高级篇(分布式缓存/持久化)
redis·分布式·缓存
随猿Fa3 小时前
用密钥方式让通过JumpServer代理的服务器可以在我本地电脑直接访问
运维·服务器
E___V___E3 小时前
黑马点评redis改 part 2
数据库·redis·缓存
库库林_沙琪马3 小时前
Linux 命令全解析:从零开始掌握 Linux 命令行
linux·运维·服务器