一、去官網下載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節點了。