背景:有一个微服务配置了Redis缓存token的功能,后来检测系统报错,查看日志错误信息如下
2018-11-07 23:40:09.777 ERROR 5684 --- [pool-1-thread-1] com.dongze.service.GpsServiceZX
: 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.; nested exception is 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.
2018-11-07 23:40:09.777 INFO 5684 --- [pool-1-thread-1] com.dongze.service.GpsServiceZX :获取的token:null
从网上查了相关问题,问题原因是Redis 快照关闭了导致不能存储,可以通过关闭stop-writes-on-bgsave-error配置来解决。
(1)Windows系统中找到了redis.windows.conf文件,可以看到如下
# By default Redis will stop accepting writes if RDB snapshots are enabled
# (at least one save point) and the latest background save failed.
# This will make the user aware (in a hard way) that data is not persisting
# on disk properly, otherwise chances are that no one will notice and some
# disaster will happen.
#
# If the background saving process will start working again Redis will
# automatically allow writes again.
#
# However if you have setup your proper monitoring of the Redis server
# and persistence, you may want to disable this feature so that Redis will
# continue to work as usual even if there are problems with disk,
# permissions, and so forth.
stop-writes-on-bgsave-error yes
默认该设置是打开的,可以直接在此处修改为no
stop-writes-on-bgsave-error no
(2)Linux系统的话,可以通过运行config set stop-writes-on-bgsave-error no命令,关闭stop-writes-on-bgsave-error。
root@ubuntu:/usr/local/redis/bin# ./redis-cli
127.0.0.1:6379> config set stop-writes-on-bgsave-error no
OK
127.0.0.1:6379> lpush myColour "red"
(integer) 1