Redis 连接失败redis Can't init enough connections amount!
Can't init enough connections amount! Only 0 from 10 were initialized. Server: IP:6379
无法初始化足够的连接数量!只有0和10被初始化。
vi redis.conf
注释:#bind 127.0.0.1
protected-mode yes 改成 protected-mode no
可能还是因为配置的连接池不够
我的原因的RedissonConfig配置的不够
package com.guige.core.conf; import io.netty.channel.nio.NioEventLoopGroup;
import org.redisson.Config;
import org.redisson.Redisson;
import org.redisson.RedissonClient;
import org.redisson.client.codec.Codec;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import org.springframework.util.ClassUtils; /**
* Created by kl on 2017/09/26.
* redisson 客户端配置
*/
@Component
@Configuration
public class RedissonConfig {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private Integer port;
@Value("${spring.redis.password}")
private String password; @Value("${spring.redis.pool.minidle}")
private int connectionMinimumIdleSize = 10;//从节点最小空闲连接数)
private int idleConnectionTimeout = 10000;
private int pingTimeout = 1000;
private int connectTimeout = 10000;
@Value("${spring.redis.timeout}")
private int timeout = 3000;
private int retryAttempts = 3;//命令失败重试次数)
private int retryInterval = 1500; //命令重试发送时间间隔,单位:毫秒)
private int reconnectionTimeout = 3000;//重新连接时间间隔,单位:毫秒)
private int failedAttempts = 3;//执行失败最大次数) private int subscriptionsPerConnection = 5;//单个连接最大订阅数量
private String clientName = null; //名称
@Value("${spring.redis.pool.minidle}")
private int subscriptionConnectionMinimumIdleSize = 1; //从节点发布和订阅连接的最小空闲连接数)
@Value("${spring.redis.pool.maxidle}")
private int subscriptionConnectionPoolSize = 50; //(从节点发布和订阅连接池大小)
@Value("${spring.redis.pool.maxidle}")
private int connectionPoolSize = 64;//连接池大小)
@Value("${spring.redis.database}")
private int database = 0;
private boolean dnsMonitoring = false;//是否启用DNS监测)
private int dnsMonitoringInterval = 5000;//(DNS监测时间间隔,单位:毫秒) private int thread=0; //当前处理核数量 * 2 @Bean(destroyMethod = "shutdown")
RedissonClient redissonClient() throws Exception {
Config config = new Config();
config.useSingleServer().setAddress(host+":"+port)
.setConnectionMinimumIdleSize(connectionMinimumIdleSize)
.setConnectionPoolSize(connectionPoolSize)
.setDatabase(database)
.setDnsMonitoring(dnsMonitoring)
.setDnsMonitoringInterval(dnsMonitoringInterval)
.setSubscriptionConnectionMinimumIdleSize(subscriptionConnectionMinimumIdleSize)
.setSubscriptionConnectionPoolSize(subscriptionConnectionPoolSize)
.setSubscriptionsPerConnection(subscriptionsPerConnection)
.setClientName(clientName)
.setFailedAttempts(failedAttempts)
.setRetryAttempts(retryAttempts)
.setRetryInterval(retryInterval)
.setReconnectionTimeout(reconnectionTimeout)
.setTimeout(timeout)
.setConnectTimeout(connectTimeout)
.setIdleConnectionTimeout(idleConnectionTimeout)
.setPingTimeout(pingTimeout)
.setPassword(password);
Codec codec = (Codec) ClassUtils.forName("org.redisson.codec.JsonJacksonCodec", ClassUtils.getDefaultClassLoader()).newInstance();
config.setCodec(codec);
config.setThreads(thread);
config.setEventLoopGroup(new NioEventLoopGroup());
config.setUseLinuxNativeEpoll(false);
return Redisson.create(config);
}
}
spring:
redis:
database: 1
host: 192.168.1.161
port: 6379
timeout: 50000
password: 201805
pool:
# 连接池最大连接数(使用负值表示没有限制)
maxactive: 64
# 连接池中的最大空闲连接
maxidle: 64
# 连接池最大阻塞等待时间(使用负值表示没有限制)
maxwait: -1
# 连接池中的最小空闲连接
minidle: 1
package com.guige.core.conf; import com.guige.core.ext.common.redis.MyCacheErrorHandler;
import com.guige.core.ext.common.redis.MyKeyGenerator;
import com.guige.core.ext.common.redis.MyRedisCacheManager;
import com.guige.core.ext.common.redis.MyRedisTemplate;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.interceptor.CacheErrorHandler;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import redis.clients.jedis.JedisPoolConfig; /**
* TODO
*
* @author songaw
* @date 2018/7/17 11:29
*/
@Component
@Configuration
public class RedisConf {
@Value("${spring.redis.database}")
private Integer database; @Value("${spring.redis.host}")
private String host; @Value("${spring.redis.password}")
private String password; @Value("${spring.redis.port}")
private Integer port; @Value("${spring.redis.timeout}")
private Integer timeout; @Value(value = "${spring.redis.expire:300}")
private Integer expiration; @Value("${spring.redis.pool.maxactive}")
private int maxActive; @Value("${spring.redis.pool.minidle}")
private int minIdle; @Value("${spring.redis.pool.maxidle}")
private int maxIdle; @Bean
public JedisPoolConfig jedisPoolConfig(){
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(this.maxIdle);
poolConfig.setMinIdle(this.minIdle);
poolConfig.setTestOnCreate(true);
poolConfig.setTestOnBorrow(true);
poolConfig.setTestOnReturn(true);
poolConfig.setTestWhileIdle(true);
return poolConfig;
}
@Bean
public JedisConnectionFactory jedisConnectionFactory(){
JedisPoolConfig config = jedisPoolConfig();
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(config);
jedisConnectionFactory.setDatabase(this.database);
jedisConnectionFactory.setHostName(this.host);
jedisConnectionFactory.setPassword(this.password);
jedisConnectionFactory.setPort(this.port);
jedisConnectionFactory.setTimeout(this.timeout);
return jedisConnectionFactory;
}
@Bean
public RedisTemplate redisTemplate(){
MyRedisTemplate myRedisTemplate = new MyRedisTemplate();
myRedisTemplate.setConnectionFactory(jedisConnectionFactory());
return myRedisTemplate;
}
public RedisCacheManager redisCacheManager(){
MyRedisCacheManager myRedisCacheManager = new MyRedisCacheManager(redisTemplate());
return myRedisCacheManager;
}
@Bean
public CacheErrorHandler cacheErrorHandler(){
MyCacheErrorHandler myCacheErrorHandler = new MyCacheErrorHandler();
return myCacheErrorHandler;
}
@Bean
KeyGenerator keyGenerator(){
MyKeyGenerator myKeyGenerator = new MyKeyGenerator();
return myKeyGenerator;
}
}
Redis 连接失败redis Can't init enough connections amount!的更多相关文章
- java原生程序redis连接(连接池/长连接和短连接)选择问题
最近遇到的连接问题我准备从重构的几个程序(redis和mysql)长连接和短连接,以及连接池和单连接等问题用几篇博客来总结下. 这个问题的具体发生在java原生程序和redis的交互中.这个问题对我最 ...
- 红眼技术博客 » redis连接池红眼技术博客 » redis连接池
红眼技术博客 » redis连接池 redis连接池
- python通过连接池连接redis,操作redis队列
在每次使用redis都进行连接的话会拉低redis的效率,都知道redis是基于内存的数据库,效率贼高,所以每次进行连接比真正使用消耗的资源和时间还多.所以为了节省资源,减少多次连接损耗,连接池的作用 ...
- spring-data-redis 上百万的 QPS 压力太大连接失败,我 TM 人傻了
大家好,我们最近业务量暴涨,导致我最近一直 TM 人傻了.前几天晚上,发现由于业务压力激增,某个核心微服务新扩容起来的几个实例,在不同程度上,出现了 Redis 连接失败的异常: org.spring ...
- Redis偶发连接失败案例分析
[作者] 张延俊:携程技术保障中心资深DBA,对数据库架构和疑难问题分析排查有浓厚的兴趣. 寿向晨:携程技术保障中心高级DBA,主要负责携程Redis及DB的运维工作,在自动化运维,流程化及监控排障等 ...
- Redis02 Redis客户端之Java、连接远程Redis服务器失败
1 查看支持Java的redis客户端 本博文采用 Jedis 作为redis客户端,采用 commons-pool2 作为连接redis服务器的连接池 2 下载相关依赖与实战 2.1 到 Repos ...
- Swoole Redis 连接池的实现
概述 这是关于 Swoole 入门学习的第九篇文章:Swoole Redis 连接池的实现. 第八篇:Swoole MySQL 连接池的实现 第七篇:Swoole RPC 的实现 第六篇:Swoole ...
- Redis连接
using System; using System.Configuration; using StackExchange.Redis; namespace Redis { public sealed ...
- Redis系列-远程连接redis并给redis加锁
假设两台redis服务器,ip分别为:192.168.1.101和192.168.1.103,如何在101上通过redis-cli访问103上的redis呢?在远程连接103之前,先讲下redis-c ...
随机推荐
- JavaScript | 对象详解
————————————————————————————————————————————————————————— 对象有哪些(导图) 内建对象 数据封装对象 Object对象 Object.prot ...
- smartcar 系列机器人学习笔记1
总体框架: 1,感知一个相机,一个雷达,一个odom(非必须:一个imu)功能:车道线检测,红绿灯检测,障碍物检测 2,决策规划 功能:一次规划,(避障即:二次规划) 3,控制执行 功能:速度控制,角 ...
- 02-spring学习-配置bean
在spring的IOC容器中配置Bean 一,在xml中通过bean节点来配置bean: class:bean的类名,通过反射的方式在IOC容器中创建Bean,所以要求bean中必须有无参的构造器 i ...
- Hibernate继承类的实现
版权声明:本文为博主原创文章,如需转载请标注转载地址. 博客地址:http://www.cnblogs.com/caoyc/p/5603724.html 对于继承关系类的映射.比如在论坛中文章(Ar ...
- 【LeetCode-面试算法经典-Java实现】【101-Symmetric Tree(对称树)】
[101-Symmetric Tree(对称树)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a binary tree, check whether ...
- Python基础--字典:当索引不好用时
当列表或是元组的索引不能达到我们的目的时,我们想到了还有一种序列,即字典. 创建 字典 由多个键以及相应的值构成的键-值对组成. 键唯一.值能够不唯一 phonebook = {'xidada':'1 ...
- 【POJ 3140】 Contestants Division(树型dp)
id=3140">[POJ 3140] Contestants Division(树型dp) Time Limit: 2000MS Memory Limit: 65536K Tot ...
- Scroller应用:ListView滑动删除
1.设计思路 在Scroller的应用--滑屏实现中使用Scroller实现滑屏效果,这里使用Scroller与ListView实现相似QQ滑动.然后点击删除功能.设计思路是Item使用Scrolle ...
- [svc]caffe安装笔记-显卡购买
caffe,这是是数据组需要做一些大数据模型的训练(深度学习), 要求 服务器+显卡(运算卡), 刚开始老板让买的牌子是泰坦的(这是2年前的事情了). 后来买不到这个牌子的,(jd,tb)看过丽台的, ...
- Java序列化与反序列化学习(三):序列化机制与原理
Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的 过程.Java序列化API提供 ...