NoSQL之Redis集群(缓存加速)

redis工作模式:

单节点;

集群的方式:

主从模式(2.8之前)

解决的数据备份,读写分离,无法实现自动化故障转移;

无法对master扩容;

哨兵模式(2.8之后)

利用哨兵检测master的状态;

自动的故障转移;

无法对master扩容;

集群模式(3.0之后)

redis cluster

分片:

客户端

代理设备

服务器端

master只有一个slave

master故障-->slave

(ping-pong)

master有多个slave

选举,选出新的主;

slave广播(故障切换的认证请求),拉选票,让master投票;

master(故障转移的认证应答),投票给slave;

如果a-slave票数多,a成了master;

如果票数一样多,再选;

期望,半数以上;

对于集群服务器的数量建议为奇数台;

主从架构的优缺点

哨兵模式的优缺点

集群模式的优缺点

redis集群至少有三个master,而单个master至少对应一个slave;

将软件包拉到各个服务器中;开启同步会话;

解压:

cd到解压目录;开始编译;

编译后安装;指定安装目录;

命令优化;

安装redis;

然后搭建集群环境;

修改配置文件;

修改监听地址;

修改redis保持持久化的工作模式;

开启集群模式及其集群模式的配置文件;和超时时间;

将以下语句yes改成no;

插槽覆盖功能;

改到这里就修改完毕了,保存退出,重启一下redis;

然后取消同步会话功能;创建集群;

因为redis的特殊之处就在于去中心化的特性;

如果检查无误,就输入yes继续;

成功的提示页面;

此时就可以登录任意一个节点查看cluster的状态信息;

对于redis集群而言,任意一个节点的IP都可以作为登录的入口;

如何登录集群呢?

此时会发现,创建键值对,哈希运算后生成槽放置到集群的节点上;

这就是分布式存储;且查看提示符,会发现,会切换到其他主机上;

而查看的也是主机192.168.10.103的信息;

如何动态的扩缩容?

这里采用脚本的方式快速部署;

随意找一个节点进行添加;

但是此节点,写入的话不会分配给该节点;因为该节点没有槽;

第二种添加的语句;

要指定集群的任意一个节点的IP及端口;

但是这种添加的方法也没有槽位;

默认添加进来的新的节点都会以master的身份,添加进去;

如果想让添加的节点成为现有节点的slave;如何实现?

先加入到集群中,然后以新节点的IP登录到集群中,指定要作为哪个节点的从;

这时要指定master的ID;

此时,108就成为了107的slave;

重新分配槽位;

然后再登录进去,查看节点信息;

如何删除节点;即缩容;
先指定集群中的任意一个IP地址,再指定删除哪一个节点的ID;
会从集群中忘记该节点;FORGET

还会把该节点关闭掉;

删除一个从节点的时候,可以直接删掉,因为该节点没有分配槽位,但是删除一个主节点的话,会提示该节点不会空,即有槽位;

首先要把该节点数据库清空,然后重置一下该节点,再去移除该节点;

再把该节点删除掉;

但是删除了master节点,以往分配给该节点的槽位还存在,所以要重新分配一下槽位,给其他节点;

可以看出,会提醒无法重置槽位;

删除master节点会影响到集群的架构;

此时要同步集群的会话,清空数据库,然后重置;

重新创建集群;

但是针对该问题,有另外的解决方案,就是移动槽位,随即也会把数据移动走,再删除该节点就没影响了;

相关推荐
只因在人海中多看了你一眼2 分钟前
分布式缓存 + 数据存储 + 消息队列知识体系
分布式·缓存
Dlwyz1 小时前
redis-击穿、穿透、雪崩
数据库·redis·缓存
工业甲酰苯胺3 小时前
Redis性能优化的18招
数据库·redis·性能优化
Oak Zhang6 小时前
sharding-jdbc自定义分片算法,表对应关系存储在mysql中,缓存到redis或者本地
redis·mysql·缓存
门牙咬脆骨7 小时前
【Redis】redis缓存击穿,缓存雪崩,缓存穿透
数据库·redis·缓存
门牙咬脆骨7 小时前
【Redis】GEO数据结构
数据库·redis·缓存
墨鸦_Cormorant8 小时前
使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像
redis·nginx·docker
Dlwyz11 小时前
问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性
数据库·redis·缓存
飞升不如收破烂~12 小时前
redis的List底层数据结构 分别什么时候使用双向链表(Doubly Linked List)和压缩列表(ZipList)
redis
吴半杯13 小时前
Redis-monitor安装与配置
数据库·redis·缓存