博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
崛起于Springboot2.X之redis集群搭建(17)
阅读量:5889 次
发布时间:2019-06-19

本文共 3619 字,大约阅读时间需要 12 分钟。

  hot3.png

Springboot2.0.3

1、添加配置

spring.redis.jedis.pool.max-active=8spring.redis.jedis.pool.max-wait=-1msspring.redis.jedis.pool.min-idle=0spring.redis.jedis.pool.max-idle=8spring.redis.commandTimeout=5000spring.redis.cluster.nodes=10.100.50.23:6380,10.100.50.23:6381,10.100.50.23:6382,10.100.50.23:6383,10.100.50.23:6384,10.100.50.23:6385

2、添加依赖

    只需要一个redis依赖就可以,这个依赖包中会有相关的jedis类,所以没必要非要集成jedis

org.springframework.boot
spring-boot-starter-data-redis

3、配置类

import com.fasterxml.jackson.annotation.JsonAutoDetect;import com.fasterxml.jackson.annotation.PropertyAccessor;import com.fasterxml.jackson.databind.ObjectMapper;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;import org.springframework.data.redis.serializer.StringRedisSerializer;import redis.clients.jedis.HostAndPort;import redis.clients.jedis.JedisCluster;import redis.clients.jedis.JedisPoolConfig;import java.net.UnknownHostException;import java.util.HashSet;import java.util.Set;@Configuration@ConditionalOnClass({JedisCluster.class})public class RedisClusterConfig {    @Value("${spring.redis.cluster.nodes}")    private String clusterNodes;    @Value("${spring.redis.timeout}")    private int timeout;    @Value("${spring.redis.pool.max-idle}")    private int maxIdle;    @Value("${spring.redis.pool.max-wait}")    private long maxWaitMillis;    @Value("${spring.redis.commandTimeout}")    private int commandTimeout;    @Bean    public JedisCluster getJedisCluster() {        String[] cNodes = clusterNodes.split(",");        Set
nodes =new HashSet<>(); //分割出集群节点 for(String node : cNodes) { String[] hp = node.split(":"); nodes.add(new HostAndPort(hp[0],Integer.parseInt(hp[1]))); } JedisPoolConfig jedisPoolConfig =new JedisPoolConfig(); jedisPoolConfig.setMaxIdle(maxIdle); jedisPoolConfig.setMaxWaitMillis(maxWaitMillis); //创建集群对象 return new JedisCluster(nodes,commandTimeout,jedisPoolConfig); } /** * 设置数据存入redis 的序列化方式 *
redisTemplate序列化默认使用的jdkSerializeable,存储二进制字节码,导致key会出现乱码,所以自定义 *序列化类 * * @paramredisConnectionFactory */ @Bean public RedisTemplate
redisTemplate(RedisConnectionFactory redisConnectionFactory)throws UnknownHostException { RedisTemplate
redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer =new Jackson2JsonRedisSerializer(Object.class); ObjectMapper objectMapper =new ObjectMapper(); objectMapper.setVisibility(PropertyAccessor.ALL,JsonAutoDetect.Visibility.ANY); objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(objectMapper); redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.afterPropertiesSet(); return redisTemplate; }}

4、使用JedisCluster操作redis

    注入JedisCluster,你会发现,如图:

f2785405ff950b277cf63f1a67d2205a77b.jpg

所以,你可以将JedisCluster注入到controller也可以注入service层,都可以使用redis

转载于:https://my.oschina.net/mdxlcj/blog/1858691

你可能感兴趣的文章
二叉搜索树转换成双向链表
查看>>
WebLogic和Tomcat的区别
查看>>
java类中 获取服务器的IP 端口
查看>>
occActiveX - ActiveX with OpenCASCADE
查看>>
redmine
查看>>
css 序
查看>>
DirectshowLib摄像头拍照的”未找到可用于建立连接的介质筛选器组合“ 解决办法...
查看>>
wcf-1
查看>>
三种简单排序
查看>>
Dalvik VM和JVM的比较以及Android新的虚拟机ART
查看>>
【CSU 1803】2016
查看>>
SQLServer 批量备份与还原
查看>>
51Nod 1010 只包含因子2 3 5的数 Label:None
查看>>
Java中String和byte[]间的转换浅析
查看>>
什么是异步
查看>>
WordPress 主题切换
查看>>
cookie和session
查看>>
【java】path和classpath
查看>>
UVa 10057 - A mid-summer night's dream
查看>>
解决3 字节的 UTF-8 序列的字节 3 无效
查看>>