溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot redis cluster集群的配置方法

發(fā)布時間:2021-09-10 10:18:44 來源:億速云 閱讀:297 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“springboot redis cluster集群的配置方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“springboot redis cluster集群的配置方法”吧!

上代碼:

import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.MapPropertySource; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisClusterConfiguration; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;
import com.gta.yyyf.commons.utils.SpringContextHolder;
import redis.clients.jedis.JedisPoolConfig;
import java.util.HashMap; import java.util.Map;
@Configuration @EnableCaching public class RedisClusterConfig extends CachingConfigurerSupport {
    private JedisPoolConfig poolConfig(int maxIdle, int maxTotal, long maxWaitMillis, boolean testOnBorrow,         boolean testOnReturn) {         JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();         jedisPoolConfig.setMaxIdle(maxIdle);         jedisPoolConfig.setMaxTotal(maxTotal);         jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);         jedisPoolConfig.setTestOnBorrow(testOnBorrow);         jedisPoolConfig.setTestOnReturn(testOnReturn);         return jedisPoolConfig;     }
    private RedisClusterConfiguration redisCluterConfig(String clusterNodes) {         Map<String, Object> source = new HashMap<>();         source.put("spring.redis.cluster.nodes", clusterNodes);         return new RedisClusterConfiguration(new MapPropertySource("RedisClusterConfiguration", source));     }
    @Bean(name = "redisConnectionFactory")     public JedisConnectionFactory redisConnectionFactory(@Value("${spring.redis.cluster.maxIdle}") int maxIdle,         @Value("${spring.redis.cluster.maxTotal}") int maxTotal,         @Value("${spring.redis.cluster.maxWaitMillis}") long maxWaitMillis,         @Value("${spring.redis.cluster.testOnBorrow}") boolean testOnBorrow,         @Value("${spring.redis.cluster.testOnReturn}") boolean testOnReturn,         @Value("${spring.redis.cluster.nodes}") String clusterNodes,         @Value("${spring.redis.cluster.password}") String password) {         JedisConnectionFactory connectionFactory = new JedisConnectionFactory(             redisCluterConfig(clusterNodes),             poolConfig(maxIdle, maxTotal, maxWaitMillis, testOnBorrow, testOnReturn));         connectionFactory.setPassword(password);         return connectionFactory;     }
    @Bean(name = "stringRedisCluterTemplate")     public StringRedisTemplate stringRedisTemplate() {         StringRedisTemplate template = new StringRedisTemplate();         JedisConnectionFactory jedisConnectionFactory = SpringContextHolder.getBean("redisConnectionFactory");         template.setConnectionFactory(jedisConnectionFactory);         return template;     }
    @Bean("redisCluterTemplate")     public RedisTemplate<String, Object> redisTemplate(JedisConnectionFactory factory) {         RedisTemplate<String, Object> template = new RedisTemplate<>();         template.setConnectionFactory(factory);         StringRedisSerializer keySerializer = new StringRedisSerializer();         GenericJackson2JsonRedisSerializer valueSerializer = new GenericJackson2JsonRedisSerializer();         template.setKeySerializer(keySerializer);         template.setHashKeySerializer(keySerializer);         template.setValueSerializer(valueSerializer);         template.setHashValueSerializer(valueSerializer);         template.afterPropertiesSet();         return template;     }
    @Bean     public CacheManager cacheManager(RedisTemplate<String, Object> redisTemplate) {         RedisCacheManager manager = new RedisCacheManager(redisTemplate);         manager.setDefaultExpiration(10);         return manager;     }
}
配置文件:
spring.redis.cluster.nodes=127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381,127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381 spring.redis.cluster.timeout=2000 spring.redis.cluster.max-redirects=100 spring.redis.cluster.password=123456 spring.redis.cluster.maxIdle=200 spring.redis.cluster.maxTotal=1000 spring.redis.cluster.maxWaitMillis=2000 spring.redis.cluster.testOnBorrow=true spring.redis.cluster.testOnReturn=true
spring.redis.cluster.connectionTimeout=60000 spring.redis.cluster.soTimeout=2000 spring.redis.cluster.maxAttempts=5

到此,相信大家對“springboot redis cluster集群的配置方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI