redis集群从bind127.0.0.1 修改为本地IP需要的相关配置
之前配置集群的时候都是默认配置,后来发现在用Jedis连接集群测试的时候无法连接。后来查到是因为配置问题(配置成了127.0.0.1),所以在外面连接的时候无法连接到,需要指定本地ip才可以。于是将其重新配置了一次,终于成功!
下面整理了一下重新配置的步骤(以6个redis为例):
1、关闭redis集群
查找所有redis进程
[hadoop@master redis-cluster]$ ps -ef | grep redis
依次kill -9
[hadoop@master redis-cluster]$ kill -9 XXX
[hadoop@master redis-cluster]$ kill -9 XXX
[hadoop@master redis-cluster]$ kill -9 XXX
[hadoop@master redis-cluster]$ kill -9 XXX
[hadoop@master redis-cluster]$ kill -9 XXX
[hadoop@master redis-cluster]$ kill -9 XXX
确认是否全部关闭
2、删除相关配置、启动集群后的衍生文件
[hadoop@master redis-cluster]$ rm dump.rdb redis-trib.rb
[hadoop@master redis-cluster]$ rm ./redis01/nodes_7001.conf ./redis01/dump.rdb
[hadoop@master redis-cluster]$ rm ./redis02/nodes_7002.conf ./redis02/dump.rdb
[hadoop@master redis-cluster]$ rm ./redis03/nodes_7003.conf ./redis03/dump.rdb
[hadoop@master redis-cluster]$ rm ./redis04/nodes_7004.conf ./redis04/dump.rdb
[hadoop@master redis-cluster]$ rm ./redis05/nodes_7005.conf ./redis05/dump.rdb
[hadoop@master redis-cluster]$ rm ./redis06/nodes_7006.conf ./redis06/dump.rdb
3、修改每一个redis中的redis.conf配置
[hadoop@master redis-cluster]$ vi redis01/redis.conf
[hadoop@master redis-cluster]$ vi redis02/redis.conf
[hadoop@master redis-cluster]$ vi redis03/redis.conf
[hadoop@master redis-cluster]$ vi redis04/redis.conf
[hadoop@master redis-cluster]$ vi redis05/redis.conf
[hadoop@master redis-cluster]$ vi redis06/redis.conf
放开注释# bind 127.0.0.1 并将127.0.0.1改为指定的本地ip
4、启动redis集群
[hadoop@master redis-cluster]$ ./start-all.sh
5、重新拷贝./redis-trib.rb 至redis-cluster下面(命令仅供参考)
[hadoop@master redis-cluster]$ cp /opt/software/redis-3.0.0/src/redis-trib.rb /opt/apps/redis-3.0.0/redis-cluster/
6、重新创建副本
[hadoop@master redis-cluster]$ ./redis-trib.rb create --replicas 1 192.168.232.100:7001 192.168.232.100:7002 192.168.232.100:7003 192.168.232.100:7004 192.168.232.100:7005 192.168.232.100:7006
7、启动客户端连接集群:
[hadoop@master redis-cluster]# ../bin/redis-cli -h master -p 7001 -c
查看集群节点状态
8、Jedis连接集群测试
public static void main(String[] args) {
//构造hashSet,用于存储集群节点信息
HashSet nodes = new HashSet<>();
//添加节点
nodes.add(new HostAndPort("master",7001));
nodes.add(new HostAndPort("master",7002));
nodes.add(new HostAndPort("master",7003));
nodes.add(new HostAndPort("master",7004));
nodes.add(new HostAndPort("master",7005));
nodes.add(new HostAndPort("master",7006));
//获取jedis的集群连接对象
JedisCluster jc = new JedisCluster(nodes);
//使用jc对象进行操作
jc.set("java_clu1","aa");
//取值
System.out.println(jc.get("java_clu1"));
//关闭集群
jc.close();
}