redis5.0.4-cluster集群搭建及jedis客戶端操作


一、去官網下載redis5.0

https://redis.io/download

然后解壓安裝

$ 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節點了。

測試demo:https://github.com/dijia478/redis5-cluster-client


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM