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

posted @ 2019-04-23 16:33  dijia478  阅读(2968)  评论(0编辑  收藏  举报