ssm整合redis集群与springboot整合redis集群

目录

只贴代码

ssm整合redis集群

使用springboot整合redis集群

只贴代码

ssm整合redis集群

applicationContext-redis.xml



    
    
    
    
    
    
    

        
            
                
            
        
        
        
            
                
                    
                    
                
                
                    
                    
                
                
                    
                    
                
                
                    
                    
                
                
                    
                    
                
                
                    
                    
                
            
        
    
    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
    
    
    
        
        
    
    
    
    
    
    
   
    
    
        
        
         
        
        
        
        
    
    
        
        
        
    

pom.xml

    
    
    
      org.springframework.data
      spring-data-redis
      2.1.10.RELEASE
      
      
        
          io.lettuce
          lettuce-core
        
      
    
    
    
      redis.clients
      jedis
      2.9.0
    

web.xml


    

    
    contextConfigLocation
    classpath:spring/applicationContext-*.xml
  
  
  
    org.springframework.web.context.ContextLoaderListener
  
 

直接使用模板

    
//直接在工具类中注入使用模板
    @Autowired
    @Qualifier("stringRedisTemplate")
    private StringRedisTemplate redisTemplate;


    @Autowired
    @Qualifier("redisTemplate")
    private RedisTemplate redisTemplate;

使用springboot整合redis集群

将applicationContext-redis.xml转换为配置类与yml文件结合

package com.example.conf;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.RedisNode;
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.JdkSerializationRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import redis.clients.jedis.JedisPoolConfig;

import java.util.ArrayList;
import java.util.List;

@Configuration
@EnableConfigurationProperties(Config.class)
@ConfigurationProperties("spring.redis.cluster") //直接应用配置文件数据
public class Config {

    List nodes;
    JedisPoolConfig poolConfig;
//配置集群
    @Bean
    RedisClusterConfiguration redisClusterConfiguration(){
        RedisClusterConfiguration configuration=new RedisClusterConfiguration();
        List redisNodes=new ArrayList<>();
        for(String node:nodes){
            System.out.println(node);
            redisNodes.add(new RedisNode((node.split(":"))[0],
                    Integer.valueOf((node.split(":"))[1])));

        }
        //configuration.setPassword(RedisPassword.of("rjgc2016"));
        configuration.setClusterNodes(redisNodes);
        return configuration;
    }
//配置连接工厂
    @Bean
    JedisConnectionFactory jedisConnectionFactory(){
        JedisConnectionFactory factory=new JedisConnectionFactory(redisClusterConfiguration(),poolConfig);
        return factory;
    }

//配置模板
    @Bean
    RedisTemplate redisTemplate(){
        RedisTemplate redisTemplate = new RedisTemplate();
        redisTemplate.setConnectionFactory(jedisConnectionFactory());
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new StringRedisSerializer());

        /**将HashKey HashValue 进行序列化*/
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer());
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }
    @Bean
    StringRedisTemplate stringRedisTemplate(){
        StringRedisTemplate stringRedisTemplate=new StringRedisTemplate(jedisConnectionFactory());
        stringRedisTemplate.setKeySerializer(new StringRedisSerializer());
        stringRedisTemplate.setKeySerializer(new StringRedisSerializer());
        return stringRedisTemplate;
    }
//-----需要getter和setter
    public List getNodes() {
        return nodes;
    }

    public void setNodes(List nodes) {
        this.nodes = nodes;
    }

    public JedisPoolConfig getPoolConfig() {
        return poolConfig;
    }

    public void setPoolConfig(JedisPoolConfig poolConfig) {
        this.poolConfig = poolConfig;
    }
}

application.yml

#redis集群
spring:
  redis:
    cluster:
    #集群信息
      nodes: 112.74.40.181:6080,112.74.40.181:6083,112.74.40.181:6081,203.195.182.48:6082,203.195.182.48:6085,203.195.182.48:6084
    #默认值是5 一般当此值设置过大时,容易报:Too many Cluster redirections
      maxRedirects: 5
    jedis:
#pool我简单的设了几个参数,其余的看applicationContext-redis的配置或百度
      pool:
        max-idle: 8
        min-idle: 0
    timeout: 10000
    database: 0
    password: rjgc2016
  application:
    name: spring-boot-redis

pom.xml 

        
            org.springframework.boot
            spring-boot-starter-data-redis
            
            
                
                    io.lettuce
                    lettuce-core
                
            
        
        
        
            redis.clients
            jedis
        
        
            org.springframework.boot
            spring-boot-configuration-processor
        

直接使用模板

    
//直接在工具类中注入使用模板
    @Autowired
    @Qualifier("stringRedisTemplate")
    private StringRedisTemplate redisTemplate;


    @Autowired
    @Qualifier("redisTemplate")
    private RedisTemplate redisTemplate;

 

你可能感兴趣的:(spring)