linux部署的项目有使用到短信验证码功能,最近遇见了以下错误
redis.clients.jedis.exceptions.JedisDataException: MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
redis.clients.jedis.Protocol.processError(Protocol.java:113)
redis.clients.jedis.Protocol.process(Protocol.java:138)
redis.clients.jedis.Protocol.read(Protocol.java:192)
redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:282)
redis.clients.jedis.Connection.getIntegerReply(Connection.java:207)
redis.clients.jedis.BinaryJedis.setnx(BinaryJedis.java:435)
com.radiadesign.catalina.session.RedisSessionManager.createSession(RedisSessionManager.java:274)
org.apache.catalina.connector.Request.doGetSession(Request.java:3014)
org.apache.catalina.connector.Request.getSession(Request.java:2378)
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:897)
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:909)
javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:238)
javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:238)
javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:238)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
解决方法:
1.whereis redis.conf
根据路径
找到redis配置,将top-writes-on-bgsave-error yes 改为top-writes-on-bgsave-error no
2.whereis redis-server
根据路径找到并启动
通过redis-cli连接到服务器后执行以下命令:
127.0.0.1:6309 :config set stop-writes-on-bgsave-error no