redis 理论+redis集群配置+redis加入节点

目录

Redis理论 

Redis集群基本配置

Redis集群基本指令,启动,宕机测试

Redis节点插入集群

Redis理论 

事务冲突问题

多线程环境下,容易发生事务冲突,例子,比如同时五个人找我借钱,我的钱并不能借五个人,但足够借给其中任何一个人。如果不设置锁,我将把钱都借出去,并且负债。为了不负债,设置锁,避免事务冲突。

1.悲观锁:直接上锁 如果符合条件,开锁,一个事务结束后得到结果后,又马上上锁。缺点是效率很低,每次都得上锁。

直接例子。张三李四王五分别找我借钱,我把钱揣兜里,我先看自己的钱够不够借张三,如果可以,给他,再数一遍钱,看看够不够借李四。

2.乐观锁:在进行一次事务操作后,数据库更新,会生成一个新版本号的数据库,后续的事务要操作的时候,会检查数据库版本号有无更新,如果更新了则停止操作。即每次去拿数据的时候认为别人不会修改,所以不会上锁,但是在更新的时候会判断在此期间别人有无去更新这个数据,如版本号更新等。

Redis集群基本配置

Docker快速搭建redis集群硬核教程_稳住,别浪,慢慢来,我能翻的博客-CSDN博客

Redis集群基本指令,启动,宕机测试

redis集群不能用单机方式开启,不然会有部分数据存储失败

正确方式 加入参数-c,优化路由,也可以看到由6381切换到6383

 

 在不断进行存储的过程中,可以看到redis容器不断地进行切换,根据存储的数值,切换相应的槽

又从6383切换到6381

 集群检查指令

redis-cli --cluster check 192.168.142.128:6381

 查看集群节点指令

cluster nodes

当一个容器宕机,如端口为6381的redis宕机,其slave为端口6384的redis,依旧可以从端口6382的redis进入,进入容器

docker exec -it redis-node-2 /bin/bash

进入容器,采用正确指令开启(6382为端口号,其他固定)

redis-cli -p 6382 -c

输入查看集群节点指令查看各个节点的状态

cluster nodes

 

 

可以 看到,6381的slave变成了master,打倒封建主义,农奴翻身做主人。

查看储存的键值,并不因为宕机了一个,数据受到影响,Master宕机,数据会存到它的slave中 

再次启动端口6381,6381变成6384的slave,身份互换了 

 哈希槽位分配 这里并不是很懂

到此,集群建立完毕,一共是三主三从,如果还要往集群里面加redis容器,操作如下

Redis节点插入集群

以加入redis-node-7和redis-node-8为例

首先执行指令,建立两个新节点

docker run -d --name redis-node-7 --net host --privileged=true -v /data/redis/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387

docker run -d --name redis-node-8 --net host --privileged=true -v /data/redis/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388

将新增的6387作为Master节点加入集群

redis-cli -cluster add-node 自己实际的ip地址:6387 自己实际的ip地址:6381

6387就是将要作为master的新增节点,6381是原来节点的引路人。

节点添加成功

 虽然节点添加成功了,但我们可以看到6387并未分配槽号,集群数量改变,应该重新分配槽号,

输入以下指令

redis-cli --cluster reshard IP地址:端口号

对于我的电脑,则是

redis-cli --cluster reshard 192.168.142.128:6381

再输入需要分配槽位的id号

再输入all

再输入yes

槽位分配完毕

槽位分配结果 使用指令查看(首先也得进入容器),槽位分配完毕

redis-cli --cluster check 192.168.142.128:6381

 接下来就要给6387Master设置slave了

redis-cli --cluster add-node ip地址:slave的端口号 ip地址:master的的端口号 --cluster-slave --cluster-master-id 新主机节点id

成功~效果如下所示

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值