springboot整合redis cluster

1.redis安装
参考(https://blog.csdn.net/u012198893/article/details/97114216
2.复制配置文件,修改配置文件,参考https://blog.csdn.net/weixin_45123659/article/details/104776033
在这里插入图片描述

在这里插入图片描述
3.启动redis服务
可以一个服务一个服务的启动,也可以编写脚本启动(不使用脚本,直接跳至4)
(可选)启动和关闭redis脚本(建议手打脚本,在网上复制的话,
会有格式问题:通过这个解决yum install dos2unix,dos2unix ./start-redis.sh)
在bin目录下,也就是有/redis-server 目录下,创建xxx.sh脚本,路径要写对,内容如下
chmod u+x XXX.sh 对脚本授权
./XXXX.sh 执行可执行文件
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  1. 安装gem
    没有wget命令,可以通过yum下载
wget http://rubygems.org/downloads/redis-3.3.0.gem
gem install -l redis-3.3.0.gem

在这里插入图片描述

  1. 拷贝redis-trib.rb,在redis安装包中src中有这个文件,放入bin中

  2. 最终执行,我的是腾讯云的主机,ip不要写127.0.0.1,用外网ip

redis-cli --cluster create ip:7000 ip:7001 ip:7002 ip:7003 ip:7004 ip:7005  --cluster-replicas 1

输入yes即可
加粗样式

若waiting for the cluster to join 太长时间
可能原因:
通信端口是10000+7000,当你的redis服务在7000端口,17000端口也要打开
成功就操作一波:
在这里插入图片描述

  1. 使用JedisCluster整合(最简单例子)

yml配置:

spring:
  redis:
    cluster:
      nodes: 119.29.62.229:7000,119.29.62.229:7001,119.29.62.229:7002,119.29.62.229:7003,119.29.62.229:7004,119.29.62.229:7005
    timeout: 5000

config配置

@Configuration
public class redisClusterConfig {
    @Value("${spring.redis.cluster.nodes}")
    private String redisNode;
    @Bean
    public JedisCluster getJedisCluster() {
        String[] redisnodes = redisNode.split(",");
        Set<HostAndPort> nodes = new HashSet<>();
        for(String node:redisnodes) {
            String[] arr=node.split(":");
            HostAndPort hostAndPort = new HostAndPort(arr[0], Integer.parseInt(arr[1]));
            nodes.add(hostAndPort);
        }
        JedisCluster cluster = new  JedisCluster(nodes);
        return cluster;
    }
}

controller

@RestController
@RequestMapping("api")
public class redisClusterController {
    @Autowired
    private JedisCluster jedisCluster;
    
    @GetMapping("/setClusterValue")
    public void setClusterValue(){
        jedisCluster.set("key1","value1");
    }
    @GetMapping("/getClusterValue")
    public String getClusterValue(){
       return jedisCluster.get("key1");
    }
}

启动项目,请求
在这里插入图片描述

到这就入门了,冲冲冲!
好多都是截图,大家自己动手敲起来,这种东西懒不得,动手才会有收获
中途也出了各种问题,赖着性子慢慢就能解决,没有百度google解决不了的问题(就目前的能力)


版权声明:本文为qq_38526245原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。