1.redis安装
参考(https://blog.youkuaiyun.com/u012198893/article/details/97114216)
2.复制配置文件,修改配置文件,参考(https://blog.youkuaiyun.com/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 执行可执行文件
- 安装gem
没有wget命令,可以通过yum下载
wget http://rubygems.org/downloads/redis-3.3.0.gem
gem install -l redis-3.3.0.gem
-
拷贝redis-trib.rb,在redis安装包中src中有这个文件,放入bin中
-
最终执行,我的是腾讯云的主机,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端口也要打开
成功就操作一波:
- 使用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解决不了的问题(就目前的能力)