redisCluster集群安装

说明: 资源有限,用6个端口模拟6台主机(6661-6666),系统版本centos7,建议make install 指定目录,单个安装下面博客网址,
查询redis服务启动进程 ps -ef|grep redis
安装中遇到的问题:1.bind绑定:会拦截ip,2. 注释掉bind后会出现保护问题,设置:protected-mode no,3 集群创建时,一直等待join问题,解决很长时间,写了一个启动脚本,重启后突然好了(建议当出现join看服务是否全部启动,如果服务没问题,建议重启虚机
补充说明3问题: 我已经关闭了防火墙,出现3问题首先检查端口是否能允许外网访问,和集群总线端口是否允许访问(redis启动端口+10000)

  1. 首先编译安装单个redis(采用指定安装位置方式),如果不会,请参考我的另一篇文章
    https://blog.csdn.net/weixin_44588176/article/details/91568513
  2. 修改配置文件(redis.conf)
    daemonize yes //设置守护进程
    pidfile /var/run/redis-6661.pid
    port 6661
    #bind 127.0.0.1 (我注释掉了,拦截访问的ip)
    dir /data/redis/6661
    cluster-enabled yes //启动集群
    ##默认保存在dir下
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes //可以不改
    protected-mode no yes 改为no 不然当bind被注掉后会出现下面的错误
    在这里插入图片描述
  3. 其余5个服务重复1,2步骤,启动服务
  4. 将6个Redis加入一个集群(网上教程这一步安装会有点问题,步骤5将解决)
 ./redis-trib.rb create --replicas 1 192.168.25.128:6661 192.168.25.128:6662 192.168.25.128:6663 192.168.25.128:6664 192.168.25.128:6665 192.168.25.128:6666

报./redis-trib.rb: 没有那个文件或目录,说明缺少ruby环境,安装成功后,用
find -name redis-trib.rb 找到该文件,在该文件目录下启动命令

yum install ruby
yum install rubygems
  1. 运行4命令创建集群会出现如下问题
    在这里插入图片描述
redis-cli --cluster create 192.168.25.128:6661 192.168.25.128:6662 192.168.25.128:6663 192.168.25.128:6664 192.168.25.128:6665 192.168.25.128:6666 --cluster-replicas 1
  1. 提示一直在join中,不知道怎么的,我重启虚拟机就好了

  2. 建议写一个启动脚本启动
    启动redis脚本,建一个start.sh(注意不能再win7里面建好传到linux上去,会报错
    ,添加执行权限chmod +x start.sh

cd /zhou/redis-cluster/redis6661/redis/bin
./redis-server redis.conf
cd /zhou/redis-cluster/redis6662/redis/bin
./redis-server redis.conf
cd /zhou/redis-cluster/redis6663/redis/bin
./redis-server redis.conf
cd /zhou/redis-cluster/redis6664/redis/bin
./redis-server redis.conf
cd /zhou/redis-cluster/redis6665/redis/bin
./redis-server redis.conf
cd /zhou/redis-cluster/redis6666/redis/bin
./redis-server redis.conf
  1. 成功

在这里插入图片描述

  1. 测试代码
package test.db.redis;

import java.util.HashSet;
import java.util.Set;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;

public class RedisClusterDemo {
	public static void main(String[] args) {
		 //集群
        Set<HostAndPort> nodes = new HashSet<>();
        nodes.add(new HostAndPort("192.168.25.128",6661));
        nodes.add(new HostAndPort("192.168.25.128",6662));
        nodes.add(new HostAndPort("192.168.25.128",6663));
        nodes.add(new HostAndPort("192.168.25.128",6664));
        nodes.add(new HostAndPort("192.168.25.128",6665));
        nodes.add(new HostAndPort("192.168.25.128",6666));
        JedisCluster cluster = new JedisCluster(nodes);
        cluster.set("cluster","我们六个人");
        String value = cluster.get("cluster");
        System.out.println(value);

	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值