使用yml配置文件形式配置redis连接, 也可直接使用RedisTemplate默认配置,就可不用创建以下代码内容,只需编写yml文件即可。
至此就可以使用 RedisTemplate的自带API进行与redis的交互。
RedisClusterConf.java
package cn.com.xxx.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.MapPropertySource;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import redis.clients.jedis.JedisPoolConfig;
import java.util.HashMap;
import java.util.Map;
/**
* @description RedisConf 配置
* @author qijunyu
* @date 2017/11/15 10:59
*/
@Configuration
public class RedisClusterConf {
private static final Logger logger = LoggerFactory.getLogger(RedisClusterConf.class);
@Value("${redis.cluster.nodes}")
private String clusterNodes;
// Redis服务器地址
@Value("${redis.host}")
private String host;
// Redis服务器连接端口
@Value("${redis.port}")
private int port;
// Redis服务器连接密码(默认为空)
@Value("${redis.password}")
private String password;
// 连接超时时间(毫秒)
@Value("${redis.timeout}")
private int timeout;
// Redis数据库索引(默认为0)
@Value("${redis.database}")
private int database;
// 连接池最大连接数(使用负值表示没有限制)
@Value("${redis.pool.max-active}")
private int maxTotal;
// 连接池最大阻塞等待时间(使用负值表示没有限制)
@Value("${redis.pool.max-wait}")
private int maxWaitMillis;
// 连接池中的最大空闲连接
@Value("${redis.pool.max-idle}")
private int maxIdle;
// 连接池中的最小空闲连接
@Value("${redis.pool.min-idle}")
private int minIdle;
@Bean(name = "jedisClusterConfig")
public RedisClusterConfiguration getClusterConfiguration()
{
Map<String, Object> source = new HashMap<String, Object>();
source.put("spring.redis.cluster.nodes", clusterNodes);
source.put("spring.redis.cluster.timeout", timeout);
source.put("spring.redis.cluster.max-redirects", 5);
return new RedisClusterConfiguration(new MapPropertySource("RedisClusterConfiguration", source));
}
/**
* 配置JedisPoolConfig
* @return JedisPoolConfig实体
*/
@Bean(name = "jedisPoolConfig")
public JedisPoolConfig jedisPoolConfig() {
logger.info("=== XXX RedisConf jedisPoolConfig 初始化JedisPoolConfi ===");
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
// 连接池最大连接数(使用负值表示没有限制)
jedisPoolConfig.setMaxTotal(this.maxTotal);
// 连接池最大阻塞等待时间(使用负值表示没有限制)
jedisPoolConfig.setMaxWaitMillis(this.maxWaitMillis);
// 连接池中的最大空闲连接
jedisPoolConfig.setMaxIdle(this.maxIdle);
// 连接池中的最小空闲连接
jedisPoolConfig.setMinIdle(this.minIdle);
// jedisPoolConfig.setTestOnBorrow(true);
// jedisPoolConfig.setTestOnCreate(true);
// jedisPoolConfig.setTestWhileIdle(true);
return jedisPoolConfig;
}
/**
* 实例化 RedisConnectionFactory 对象
* @param poolConfig
* @return
*/
@Bean(name = "jedisConnectionFactory")
public RedisConnectionFactory jedisConnectionFactory(@Qualifier(value = "jedisClusterConfig") RedisClusterConfiguration poolConfig) {
logger.info("=== XXX RedisConf jedisConnectionFactory 初始化JedisPoolConfi ===");
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(poolConfig);
jedisConnectionFactory.setHostName(this.host);
jedisConnectionFactory.setPort(this.port);
jedisConnectionFactory.setDatabase(this.database);
jedisConnectionFactory.setTimeout(this.timeout);
return jedisConnectionFactory;
}
/**
* 实例化 RedisTemplate 对象
* @return
*/
@Bean(name = "redisTemplate")
public RedisTemplate<String, String> functionDomainRedisTemplate(@Qualifier(value = "jedisConnectionFactory") RedisConnectionFactory factory) {
logger.info("=== XXX RedisConf functionDomainRedisTemplate 初始化JedisPoolConfi ===");
RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(factory);
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new EntityRedisSerializer());
redisTemplate.setValueSerializer(new EntityRedisSerializer());
redisTemplate.afterPropertiesSet();
redisTemplate.setEnableTransactionSupport(true);
return redisTemplate;
}
}
application.yml
redis:
# Redis 服务器地址
host: 127.0.0.1
# Redis 服务器连接端口
port: 7000
# Redis 服务器连接密码(默认为空)
password:
# 连接超时时间(毫秒)
timeout: 0
# Redis 数据库索引(默认为 0
database: 0
pool:
# 连接池最大连接数(使用负值表示没有限制)
max-active: 8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1
# 连接池中的最大空闲连接
max-idle: 8
# 连接池中的最小空闲连接
min-idle: 0
cluster:
nodes: 127.0.0.1:7000,127.0.0.1:7001,127.0.0.1:7002

基于springboot的redis集群配置相关推荐

  1. springBoot整合redis集群配置

    最近发现这篇博客阅读量比较大,今天特意抽空创建了一个可运行的开源项目. 项目的代码和之前的博客内容相比,做了些优化,请大家参考项目源码. 开源项目源码: springboot-redis-cluste ...

  2. SpringBoot多redis集群配置

    在一个SpringBoot应用中配置多个redis集群 文章目录 1) 禁用自动配置 2)配置application.properties 3)增加java配置类 4)使用 1) 禁用自动配置 禁用 ...

  3. springboot集成redis集群实现集群拓扑动态刷新

    一个redis-cluster的三主三从集群,在其中一个master节点挂了之后,springboot集成redis集群配置信息没有及时刷新,出现读取操作报错.下面聊聊如何实现springboot集成 ...

  4. springBoot整合redis单节点、redis哨兵、redis集群配置及redisClient区别

    springBoot整合redis单节点.redis哨兵.redis集群配置,redisClient jedis lettuce 区别? 1.springboot 整合redis单机模式: sprin ...

  5. springboot整合redis集群master宕机后连接超时

    前提: #        本文是在确保redis集群配置正确的情况下,连接超时的解决方案. 项目登录认证使用的是sa-token(这个不重要,主要说的是springboot和redis集群),最近应甲 ...

  6. 基于Docker搭建Redis集群(主从集群)

    最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得之前写的这篇 <基于Docker的Redis集群搭建> 文章一定是有问题了,所以我花了几分钟浏览之前的文章总结了下面几 ...

  7. 基于Docker的Redis集群简单搭建

    环境:Docker + ( Redis:5.0.5 * 3 ) 1.拉取镜像 docker pull redis:5.0.5 2.创建Redis容器 创建三个 redis 容器: redis-node ...

  8. 基于Twemproxy的Redis集群方案

    基于Twemproxy的Redis集群方案 原文地址:http://www.cnblogs.com/haoxinyue/p/redis.html  为了保持方便,愿原博主谅解 概述 由于单台redis ...

  9. java集群解析文件_java相关:springboot整合redis集群过程解析

    java相关:springboot整合redis集群过程解析 发布于 2020-4-13| 复制链接 摘记: 简介 在springboot使用搭建好的redis集群添加redis和连接池依赖 ```x ...

最新文章

  1. Netty学习笔记(五)Pipeline
  2. VC2010下Qt5的中文乱码问题
  3. 几行代码实现谷歌百度搜索对比
  4. .htaccess 重定向_如何使用.htaccess将HTTP重定向到HTTPS
  5. 【Linux】基础每日一命之cutmvscp命令
  6. 不是男人也要上100层:Unity专为AI开发了游戏,还启动了10万美元挑战赛
  7. MySQL SYS CPU高的案例分析(一)
  8. Unity VideoPlayer组件一个接一个的播放视频
  9. mysql myd文件过大_Mysql数据文件大小超过4G了如何缩小优化
  10. elementUI兼容ie浏览器问题(笔记)
  11. 现汇买入价/现钞买入价/卖出价/基准价/中行折算价的概念
  12. 看完这篇文章,线上再遇到Jedis「Redis客户端」异常相信你不再怕了!
  13. 按键精灵输出中文乱码,输出不是?,输出如Ö16:48ÀÂ
  14. 上传绕过php文件改为图片,文件上传漏洞另类绕过技巧及挖掘案例全汇总
  15. 《计算流体力学教程》_张德良编著_高等教育出版社——学习笔记
  16. 哈工大计算机学院2020复试分数线,2020考研分数线:哈尔滨工业大学2020年复试基本分数线公布!...
  17. Kali更新源签名无效问题
  18. 192.168.0.1手机登录wifi设置改密码
  19. 普通空调实现远程控制基础知识解读
  20. 服务器卸载重装NVIDIA显卡驱动 详细版

热门文章

  1. ODrive实例 #2 电机配置实例(小米9号平衡车轮毂电机)
  2. 仿今日头条项目——文章详情
  3. k-means实现图像颜色分割及压缩
  4. 狗爹这名字取得好难听
  5. 外贸业务采购环节实现信息化管理
  6. php uv pv,SEO中IP、UV和PV的定义与区别?
  7. html contenteditable
  8. SecureCRT连接提示“The server has disconnected with an error.....”
  9. Java写出元旦特效代码
  10. 中国陶瓷、卫浴部分知名品牌名单