redis问题集合

LogConsumer Error:org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: MISCONF Redis is configured to save RDB snapshots, but it’s currently unable to persist to disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.

redis数据镜像文件在哪里?

services:
redis:
image: redis
logging:
driver: “json-file”
options:
max-size: “10m”
max-file: “3”
这个配置将Redis容器的日志输出到json格式的文件中,每个文件大小限制为10MB,最多保留3个文件。

Redis服务器磁盘满导致连接失败
http://jmsliu.cn/tech/redis%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%A3%81%E7%9B%98%E6%BB%A1%E5%AF%BC%E8%87%B4%E8%BF%9E%E6%8E%A5%E5%A4%B1%E8%B4%A5.html

ps -ef | grep -i redis

查看redis pid

Redis远程连接比较流行的软件:RedisDesktoManager

bind 127.0.0.1 注释掉 允许除本机以外的机器访问Redis服务
requirepass 设置密码 设定数据库密码(有些情况系不设定密码是无法进行远程连接访问的)

防火墙端口
firewall-cmd --list-ports
firewall-cmd --zone=public --add-port-6379/tcp --permanent
firewall-cmd --reload #重启
Firewall systemctl stop firewalld.service #停止
firewall systemctl disable firewalld.service #禁止firewall 开机启动

redis-cli config get dir
redis-cli config get dbfilename

sudo find / -name redis.conf

redis.conf

#如果您有兴趣使用includes来覆盖配置
#选项,最好使用include作为最后一行。
# include /path/to/local.conf
# include /path/to/other.conf
# include /path/to/fragments/*.conf

#启动时加载模块。如果服务器无法加载模块
#它将中止。可以使用多个loadmodule指令。
#loadmodule/path/to/my_module.so
#loadmodule/path/to/other_module.so
#~~~警告~~~如果运行Redis的计算机直接暴露在
#互联网,绑定到所有接口是危险的,并且会暴露
#举个例子给互联网上的每个人。因此,默认情况下,我们取消注释
#bind 192.168.1.100 10.0.0.1#侦听两个特定的IPv4地址
#bind 127.0.0.1::1#侦听环回IPv4和IPv6
#bind*-:*#与默认情况一样,所有可用接口
#bind 127.0.0.1 -::1
# 所有
bind 0.0.0.0

# 保护模式开启后,需要密码连接,否则只有回环地址访问
#IPv4地址(127.0.0.1)、IPv6地址(::1)或Unix域套接字。
protected-mode no

#no-阻止任何连接(保持不变)
#yes-允许任何连接(无保护)
#local-只允许本地连接。源自
# enable-protected-configs no
# enable-debug-command no
# enable-module-command no

#TCP列表()囤积。
#在每秒请求量高的环境中,您需要大量的积压工作
#以避免客户端连接速度慢的问题。请注意,Linux内核
#将静默地将其截断为/proc/sys/net/core/somaxconn-so的值
#确保提高somaxconn和tcpmaxsyncbacklog的值
#以获得期望的效果
tcp-backlog 511

# Unix socket.
#客户端空闲N秒后关闭连接(0表示禁用)
超时0 表示禁用
timeout 0

# TCP保持活动
在Linux上,指定的值(以秒为单位)是用于发送ACK的周期。
#请注意,要关闭连接,需要双倍的时间。
#在其他内核上,周期取决于内核配置。此选项的合理值为300秒
tcp-keepalive 300

#默认情况下,Redis不作为守护进程运行。如果需要,请使用“是”。
#请注意,Redis在守护进程中会在/var/run/Redis.pid中写入一个pid文件。
#当Redis被upstart或systemd监管时,这个参数没有影响。
daemonize no

#在配置中指定。当服务器被守护程序化时,pid文件
#即使未指定,也会使用,默认为“/var/run/redis.pid”。
pidfile/var/run/redis_6379.pid

# 指定日志记录几倍,Redis总共支持四个级别:debug,verbose,notice,warning,默认为verbose
loglevel notice

#日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置日志记录方式标准输出,则日志将会发送给/dev/null
logfile stdout
logfile ""

# 设置数据库的数量,默认数据库为0,可以使用SELECT<dbid>命令在连接上指定数据库id
databases 16
# 可以在启动日志中显示ASCII艺术徽标。始终显示徽标否
always-show-logo no

################################ snapshotting 快照 ################################
#指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
#save<seconds><changes>
#Redis默认配置文件中提供了三个条件
分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
10、指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF(压缩算法)压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大
save 900 1
save 300 10
save 60 10000

#默认情况下,如果启用了RDB快照,Redis将停止接受写入
#(至少一个保存点),并且最近的后台保存失败。
#这将使用户(以一种艰难的方式)意识到数据没有持久化
#正确地放在磁盘上,否则很可能没有人会注意到
#灾难将会发生
#如果后台保存过程将重新开始工作,Redis将
#自动允许再次写入。如果您已经设置了对Redis服务器的正确监控
#和持久性,您可能需要禁用此功能,以便Redis
#即使磁盘出现问题也要照常工作
stop-writes-on-bgsave-error yes

# 指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF(压缩算法)压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大
rdbcompression yes

# 告诉加载代码跳过检查
rdbchecksum yes

指定本地数据库文件名,默认为dump.rdb
dbfilename dump.rdb

指定本地数据库存放目录
dir ./

副本提供陈旧数据是
replica-serve-stale-data yes

副本仅接受读取,不能写入
replica-read-only yes

#ACL日志
#ACL日志跟踪失败的命令和关联的身份验证事件
#使用ACL。ACL日志可用于故障排除阻止的失败命令
#通过ACL。ACL日志存储在内存中。您可以使用
#ACL日志重置。在下面定义ACL日志的最大条目长度。
acllog最大len 128
acllog-max-len 128

#AOF和RDB持久性可以同时启用,而不会出现问题。
#如果在启动时启用了AOF,Redis将加载AOF,即文件
#具有更好的耐用性保证。
#请检查https://redis.io/topics/persistence了解更多信息。
#指定是否每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一端时间内的数据丢失。因为 redis 本省同步数据文件是按上面save条件来同步的,所有的数据会在一端时间内只存在于内存中。默认为no
appendonly no
指定更新日志文件名,默认为appendonly.aof
#例如,如果appendfilename设置为appendonly.aof,则以下文件
#可以派生名称:
#-appendonly.aof.1.base.rdb作为基文件。
#-appendonly.aof.1.incr.of,appendonly.aof.2.incr.of作为增量文件。
#-appendonly.aof.manifest作为清单文件。
appendfilename "appendonly.aof"

# 指定更新日志条件,共有3个可选值:no: 表示等操作系统进行数据缓存同步到磁盘(快)always: 表示每次更新操作后活动调用fsync()将数据写到磁盘(慢,安全)everysec: 表示每秒同步一个(折中,默认值)
# appendfsync always
appendfsync everysec
# appendfsync no

#volatile lru->使用近似lru驱逐,只驱逐具有过期集的密钥。
#allkeys-lru->使用近似lru收回任何密钥。
#volatile lfu->使用近似lfu驱逐,只驱逐具有过期集的密钥。
#allkeys-lfu->使用近似lfu收回任何密钥。
#volatile random->移除具有过期集的随机密钥。
#allkeys random->移除随机密钥,任意密钥。
#volatile ttl->删除最接近过期时间的密钥(次要ttl)
#noevision->不要逐出任何内容,只需在写入操作时返回一个错误。
# maxmemory-policy noeviction  #  内存达到上限之后的处理策略
1、volatile-lru : 只对设置了过期时间的key进行LRU(默认值)
2、allkeys-lru : 产出lru算法的key
3、volatile-random  : 随机删除即将过期key
4、allkey -random : 随机删除
5、volatile-ttl  :  删除即将过期的
6、noeviction    : 永不过期,返回错误
# The default is:
# maxmemory-policy noeviction

# 设置Redis连接密码,如果配置了连接密码,客户端在连接Redis是需要通过AUTH <password>命令提供密码,默认关闭
# requirepass foobared
requirepass 123456
# 设置同一时间最大客户端连接数,默认是无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置maxclients 0,表示不作限制。当客户端连接数到达限制是,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息# maxclients 10000
maxclients 128

# 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,档次方法处理后,仍然达最大内存设置,将无法再进行写入操作,但仍然可以静心读取操作。Rdis新的vm机制,会把key存放内存,Value会存放在swap区
# maxmemory <bytes>

必须要ip,localhost不行

在这里插入图片描述

重启redis

docker-compose -f docker-compose-base-all.yaml restart redis_host

org.springframework.dao.QueryTimeoutException: Redis command timed out; nested exception is io.lettu

超时问题

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值