七叶笔记 » 数据库 » k8s部署redis cluster集群的实现

k8s部署redis cluster集群的实现

Redis 介绍 Redis代表REmote DIctionary Server是一种开源的内存中数据存储,通常用作数据库,缓存或消息代理。它可以存储和操作高级数据类型,例如列表,地图,集合和排序集合。 由于Redis接受多种格式的密钥,因此可以在服务器上执行操作,从而减少了客户端的工作量。 它仅将磁盘用于持久性,而将数据完全保存在内存中。 Redis是一种流行的数据存储解决方案,并被GitHub,Pinterest,Snapchat,Twitter,StackOverflow,Flickr等技术巨头所使用。

为什么要用Redis 它的速度非常快。它是用ANSI C编写的,并且可以在POSIX系统上运行,例如Linux,Mac OS X和Solaris。 Redis通常被排名为最流行的键/值数据库和最流行的与容器一起使用的NoSQL数据库。 其缓存解决方案减少了对云数据库后端的调用次数。 应用程序可以通过其客户端API库对其进行访问。 所有流行的编程语言都支持Redis。 它是开源且稳定的。

什么是Redis Cluster集群 Redis Cluster是一组Redis实例,旨在通过对数据库进行分区来扩展数据库,从而使其更具弹性。 群集中的每个成员(无论是主副本还是辅助副本)都管理哈希槽的子集。如果主机无法访问,则其从机将升级为主机。在由三个主节点组成的最小Redis群集中,每个主节点都有一个从节点(以实现最小的故障转移),每个主节点都分配有一个介于0到16,383之间的哈希槽范围。节点A包含从0到5000的哈希槽,节点B从5001到10000,节点C从10001到16383。 群集内部的通信是通过内部总线进行的,使用协议传播有关群集的信息或发现新节点。

k8s以StatefulSet方式部署redis cluster集群:

1. 部署nfs

2. 创建pv

3. 部署redis

4. 初始化redis集群

主机说明:

系统 ip 角色 cpu 内存 hostname CentOS 7.8 192.168.30.128 master >=2 >=2G master1 CentOS 7.8 192.168.30.129 master >=2 >=2G master2 CentOS 7.8 192.168.30.130 node >=2 >=2G node1 CentOS 7.8 192.168.30.131 node >=2 >=2G node2 CentOS 7.8 192.168.30.132 node >=2 >=2G node3

部署nfs

在master2节点上做nfs共享,

nfs部署完毕。对于需要使用nfs的node节点,都要安装nfs:

创建pv

创建pv:

pv创建完毕。

部署redis

redis-access这个service方便集群内访问redis集群,redis部署完毕。

初始化redis集群

使用Redis-tribe工具进行集群的初始化。

下载redis-tribe:

初始化集群:

查看集群:

redis集群初始化完成,已经形成3主3从的cluster集群。

写入数据:

可以看出redis cluster集群是去中心化的,每个节点都是平等的,连接哪个节点都可以获取和设置数据。

主从切换:

选择redis-2模拟宕掉,测试主从切换,

可以看到,redis-2是master,它的slave是172.10.3.60,即redis-5。

可以看到,redis-2在重启之后变为slave,而它之前的slave——redis-5变为master,而且是新redis-2的master。

集群的主从切换没有问题。k8s部署redis cluster集群完成。

到此这篇关于k8s部署redis cluster集群的实现的文章就介绍到这了,更多相关k8s部署redis cluster内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!

相关文章