首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

springboot配置redis集群

一、导入POM.XML

二、编写application.yml

spring:

redis:

password:

lettuce:  #lettuce连接池配置

pool:

max-active: 8

max-idle: 8

min-idle: 0

max-wait: 1000

shutdown-timeout: 100

cluster:  #集群配置

nodes:

- 192.168.3.41:6381

- 192.168.3.41:6382

- 192.168.3.41:6383

- 192.168.3.41:6384

- 192.168.3.41:6385

- 192.168.3.41:6386

max-redirects: 3

三、RedisConfig编写

@Configuration

@Log

public class RedisConfig extends CachingConfigurerSupport {

/**

* 自定义缓存key的生成策略。默认的生成策略是看不懂的(乱码内容) 通过Spring 的依赖注入特性进行自定义的配置注入并且此类是一个配置类可以更多程度的自定义配置

*

* @return

*/

@Bean

@Override

public KeyGenerator keyGenerator() {

return new KeyGenerator() {

@Override

public Object generate(Object target, Method method, Object... params) {

StringBuilder sb = new StringBuilder();

sb.append(target.getClass().getName());

sb.append(method.getName());

for (Object obj : params) {

sb.append(obj.toString());

}

log.info("打印:"+sb.toString());

return sb.toString();

}

};

}

/**

* 缓存配置管理器

*/

@Bean

public CacheManager cacheManager(LettuceConnectionFactory factory) {

//以锁写入的方式创建RedisCacheWriter对象

RedisCacheWriter writer = RedisCacheWriter.lockingRedisCacheWriter(factory);

//创建默认缓存配置对象

RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();

RedisCacheManager cacheManager = new RedisCacheManager(writer, config);

return cacheManager;

}

@Bean

public RedisTemplate redisTemplate(LettuceConnectionFactory factory){

RedisTemplate template = new RedisTemplate ();

template.setConnectionFactory(factory);

Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

ObjectMapper om = new ObjectMapper();

om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);

om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

jackson2JsonRedisSerializer.setObjectMapper(om);

StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();

// 在使用注解@Bean返回RedisTemplate的时候,同时配置hashKey与hashValue的序列化方式。

// key采用String的序列化方式

template.setKeySerializer(stringRedisSerializer);

// value序列化方式采用jackson

template.setValueSerializer(jackson2JsonRedisSerializer);

// hash的key也采用String的序列化方式

template.setHashKeySerializer(stringRedisSerializer);

// hash的value序列化方式采用jackson

template.setHashValueSerializer(jackson2JsonRedisSerializer);

template.afterPropertiesSet();

return template;

}

}

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OkZr4yV9sS4rBwbL6d0178DA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券