redis.timeout(redistimeout)

http://www.itjxue.com  2023-02-16 00:50  来源:未知  点击次数: 

springboot整合redis异常汇总

项目中要用到redis,于是尝试通过springboot整合redis,redis集群采用3主3从,搭建方法参考:

springboot从2.x版本开始默认使用lettuce访问redis,所以部分配置由jedis改为lettuce

异常1: Cannot retrieve initial cluster partitions from initial URIs [RedisURI [host='192.168.1.1', port=6379]]

这个问题绕了很多弯路,根据网上的很多方案,以为是redis集群配置成了主从模式,但是springboot连接使用的是cluster模式,最后发现问题出在spring.redis.timeout=0这条配置上。

spring.redis.timeout,在1.0中,时间相关的配置参数类型为int,默认单位为毫秒, 而且设置为0意味着不超时 ,2.x版本中参数类型为Duration,需要添加单位,如:500ms

异常2: java.lang.NoClassDefFoundError: org/apache/commons/pool2/impl/GenericObjectPoolConfig

添加依赖即可

dependency

groupIdorg.apache.commons/groupId

artifactIdcommons-pool2/artifactId

version2.8.0/version

/dependency

异常3:Caused by: io.lettuce.core.RedisCommandExecutionException: CLUSTERDOWN The cluster is down

1.如果在配置文件中给redis设置了密码,还需要在redis-cli终端设置一下

config set requirepass xxxx(密码)

2.redis-cli 检查cluster的状态

cluster info

3.配置文件中cluster-require-full-coverage设置为no,重启redis服务,可参考:

redis不设置timeout是多久

50分钟。redis数据库使用说明介绍,该数据库不设置timeout是50分钟,需要设置timeout参数来限制客户端连接的空闲时间。Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库,并提供多种语言的API。

redis客户端删除一个key时,客户端显示timeout异常有什么原因

//删除单个实体$redis-hDel('hashkey', 'key1');//删除整个hash$redis-del('hashkey'); 删除一个redis的key都是用del方法, 不管是string,hash,list,set等类型, 都一样

如何解决redis高并发客户端频繁time out

检查思路一下几点:

1、查看是否有网络波动引起,这种情况有可能是redis集群和调用方属于外网方式。

2、查看redis链接数,是否达到设置的连接数或者默认设置的连接数。

3、如过是程序链接timeout 的话,看客服端代码链接池方式是否问题。

基于你提问题提的含糊不清,只能回答这么多了,有疑问可以追问!

redis.conf详解之timeout

单位是 秒

在timeout时间内如果没有数据交互,redis侧将关闭连接。

没有数据交互 :redis客户端不向服务端发送任何数据。

1. 0 代表永不断开( 在macOS测试不受内核保活定时器影响 )。

2. tcp/ip 连接、 unix socket 连接均受 timeout 影响。

2. timeout 在源码中对应 server.maxidletime

3.源码以及一些注释:

查看

修改

(责任编辑:IT教学网)

更多

推荐3DMAX教程文章