一、去官网下载redis5.0
然后解压安装
$ tar xzf redis-5.0.4.tar.gz $ cd redis-5.0.4 $ make
二、准备配置文件
打开redis-5.0.4/目录中的redis.conf文件,也就是redis的配置文件
1.注释掉本行配置,否则客户端连接会报错
2.修改端口为6381(后面还需要复制出来5个配置文件,6个配置文件端口分别从6381到6386)
3.修改启动方式为后台启动
4.这里文件名改成和端口一致
5.重要!打开三项cluster集群配置开关!
6.配置redis服务器密码,不配的话jedis连接会报如下错误:
redis.clients.jedis.exceptions.JedisDataException: DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients.
7.保存退出,重命名配置文件,和第5步中的配置保持一致
这个不改也可以,我是为了看上去知道是集群配置文件,才重命名的
8.将node-6381.conf文件再复制5份,并分别重命名
9.在复制出来的5份配置文件中,分别更改第2,4,5步中和端口相关的内容
三、启动集群
进入src/目录
1.依次启动6个节点的redis
2.执行集群启动命令
注意,命令随后有个“-a admin”,这里是输入刚才设置的密码,否则无法创建集群
而且ip不能输入127.0.01,否则客户端无法连接
./redis-cli --cluster create 10.100.93.44:6381 10.100.93.44:6382 10.100.93.44:6383 10.100.93.44:6384 10.100.93.44:6385 10.100.93.44:6386 --cluster-replicas 1 -a admin
中间需要输入一个“yes”
到这里,redis5.0的cluster集群就创建完成了,从中也能看到,6381,6382,6383节点是主节点
四、Jedis客户端操作
我这里采用的jedis版本是:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.0.1</version> </dependency>
客户端代码:
public static void main(String[] args) { Set<HostAndPort> jedisClusterNodes = new HashSet<>(); //Jedis Cluster will attempt to discover cluster nodes automatically jedisClusterNodes.add(new HostAndPort("10.100.93.44", 6381)); jedisClusterNodes.add(new HostAndPort("10.100.93.44", 6382)); jedisClusterNodes.add(new HostAndPort("10.100.93.44", 6383)); jedisClusterNodes.add(new HostAndPort("10.100.93.44", 6384)); jedisClusterNodes.add(new HostAndPort("10.100.93.44", 6385)); jedisClusterNodes.add(new HostAndPort("10.100.93.44", 6386)); JedisPoolConfig jpc = new JedisPoolConfig(); jpc.setMaxTotal(10); jpc.setMaxIdle(10); jpc.setMinIdle(10); JedisCluster jc = new JedisCluster(jedisClusterNodes, 5000, 5000, 2, "admin", jpc); jc.set("dijia478", "112233"); String keys = jc.get("dijia478"); System.out.println(keys); }
运行结果:
redis集群情况:
可以看到,测试的一个key,已经插入到了6383节点了。