image

1.Redis分片测试

@Test
    public void testShards(){
        List<JedisShardInfo> shards = new ArrayList<>();
        shards.add(new JedisShardInfo("192.168.126.129", 6379));
        shards.add(new JedisShardInfo("192.168.126.129", 6380));
        shards.add(new JedisShardInfo("192.168.126.129", 6381));
        ShardedJedis shardedJedis = new ShardedJedis(shards);
        shardedJedis.set("shards", "redis分片操作!!!");
        System.out.println(shardedJedis.get("shards"));
    }

2.SpringBoot整合Redis分片

1.编辑properties配置文件

# 配置单台redis服务器
#redis.host=192.168.126.129
#redis.port=6379

##配置redis分片
redis.nodes=192.168.126.129:6379,192.168.126.129:6380,192.168.126.129:6381

2.编辑配置类

package com.jt.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import java.util.ArrayList;
import java.util.List;

@Configuration  //标识我是配置类
@PropertySource("classpath:/properties/redis.properties")
public class RedisConfig {

    /**
     * SpringBoot整合Redis分片,实质:ShardedJedis对象,交给容器管理
     */
    @Value("${redis.nodes}")
    private String nodes;       //node,node,node

    @Bean
    public ShardedJedis shardedJedis(){
        List<JedisShardInfo> shards = new ArrayList<>();
        String[] nodeArray = nodes.split(",");
        for (String node : nodeArray){ //node=ip:port
            String host = node.split(":")[0];
            int port = Integer.parseInt(node.split(":")[1]);
            //准备分片节点信息
            JedisShardInfo info  = new JedisShardInfo(host, port);
            shards.add(info);
        }
        return new ShardedJedis(shards);
    }
    
   /* @Value("${redis.host}")
    private String  host;
    @Value("${redis.port}")
    private Integer port;
    @Bean
    public Jedis jedis(){
        return new Jedis(host, port);
    }*/
}

3.修改AOP缓存注入

@Aspect
@Component
public class CacheAop {
    @Autowired
 private ShardedJedis jedis;//配置类中定义的类型
//    private Jedis jedis;

4.效果展示
image.png


早起的鸟儿
7 声望2 粉丝