Redis系列:搭建Redis集群(集群模式)

建议搭建步骤:

  • 1、安装6台单机redis
  • 2、修改配置文件:redis.conf
  • 3、在某一台上执行集群命令

效果

  • 1、集群搭建成功后,从节点宕机,不会影响集群的使用,从节点启动后,会自动加入集群,还是从节点。
  • 2、主节点宕机后, 不会影响集群的使用,从节点会自动生成主节点,原主节点启动后,会自动加入集群,成为原从节点的从节点
  • 上述效果不需要使用哨兵

搭建步骤及脚本:

  • 常见中间件安装语句中的Redis安装脚本。

  • 注意事项:

    • 在 redis.conf 中一定要加入 masterauth 和 requirepass,不然主从切换会出现问题,尽量保持这两者密码一致。
  • 集群命令

    • redis-cli --cluster create --cluster-replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 -a 123456
    • 注意到最后的-a 输入密码:ljfirst或者你自己的密码
    • redis5以后,不需要额外安装ruby
  • 校验

    • 安装时会出现提示,并且会询问是否同意set above configuration? 你输入yes就行
    • 输入redis-cli,输入AUTH 密码验证,输入cluster nodes 或者cluster info查看集群信息。

使用

  • 命令行使用(集群模式需要加 -c)
    • redis-cli -c
  • 客户端使用
@Test
public void testJedisCluster() throws Exception {
	// 第一步:使用JedisCluster对象。需要一个Set<HostAndPort>参数。Redis节点的列表。
	Set<HostAndPort> nodes = new HashSet<>();
	nodes.add(new HostAndPort("192.168.204.134", 7001));
	nodes.add(new HostAndPort("192.168.204.134", 7002));
	nodes.add(new HostAndPort("192.168.204.134", 7003));
	nodes.add(new HostAndPort("192.168.204.134", 7004));
	nodes.add(new HostAndPort("192.168.204.134", 7005));
	nodes.add(new HostAndPort("192.168.204.134", 7006));
	JedisCluster jedisCluster = new JedisCluster(nodes);
	// 第二步:直接使用JedisCluster对象操作redis。在系统中单例存在。
	jedisCluster.set("hello", "100");
	String result = jedisCluster.get("hello");
	// 第三步:打印结果
	System.out.println(result);
	// 第四步:系统关闭前,关闭JedisCluster对象。
	jedisCluster.close();
}

新增节点

  • redis一对主从同时宕机,slot并不会重新分配,导致部分redis不可以用,需要重新分配slot.
  • 解决办法:原主从可以修复的话,从新上线,会自动加入集群,原主从不可以加入的话,新申请机器,手动分配slot
  • 步骤
  • 参考博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值