Redis--集群

1 主从架构
构建读写分离架构,满足读多写少的应用场景,默认情况下redis数据库充当slave角色时是只读的不能进行写操作。
可在配置文件中更改slave-read-only字段:
这里写图片描述
这里写图片描述
1.1 创建不同的配置文件
创建三个目录,将redis.config复制三份放在三个文件夹中。分别修改配置文件,将端口分别设置为:6379(Master)、6380(Slave)、6381(Slave)。同时要设置pidfile文件为不同的路径。
1.2 配置主从节点
在两个准备设置为从节点的配置文件中,打开配置文件,搜索slaveof,会有详细的说明,配置主节点的IP和端口号,如下例:

#slaveof <masterip> <masterport>
slaveof 192.168.209.131 6379

将该从节点的主节点配置为192.168.209.131,端口为6379。
这里写图片描述
1.3 启动测试:
先启动主节点,然后启动从节点。
启动命令如下例:

[root@SuperMachine redis-4.0.0]# /usr/local/redis-4.0.0/src/redis-server /usr/local/redis-4.0.0/6380/redis.conf 

启动客户端测试,在主节点中设置一个键值对:

[tang@SuperMachine src]$ ./redis-cli -h 192.168.209.131 -p 6379

这里写图片描述
从节点是否能获取到:
这里写图片描述
测试显示成功,在从节点中成功取到主节点的数据。
附出现的问题:
启动从节点时,从节点显示如下问题:
解决方案:在配置文件中更改一个配置,如下
这里写图片描述
参考博客:http://www.voidcn.com/article/p-zcrwifoi-bbe.html

2 集群
搭建集群的步骤网上一搜一大把,就不赘述了。这里贴对集群操作的代码:

Set<HostAndPort> jedisClusterNodes=new HashSet<HostAndPort>();
        jedisClusterNodes.add(new HostAndPort("192.168.209.131", 6379));//随便哪个节点即可

        JedisCluster jedisCluster=new JedisCluster(jedisClusterNodes);
        System.out.println(jedisCluster.get("abc"));

未完待续。。。

相关文章
相关标签/搜索