鲲鹏服务器Redis集群搭建

网友投稿 778 2022-05-29

Redis是一个使用ANSI C语言编写的开源key-value内存数据库系统,Redis支持字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等数据结构类型,并提供多种语言的API。

Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。

Redis 集群采用了P2P的模式,完全去中心化。Redis 把所有的 Key 分成了 16384 个 slot,每个 Redis 实例负责其中一部分 slot 。集群中的所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新。Redis 客户端可以在任意一个 Redis 实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。

由于集群至少需要6个节点(3主3从模式),为了节约服务器资源,本文只用了一台鲲鹏服务器进行模拟演示,和实际生产环境的集群搭建没本质区别。本文采用Redis-5.0.5版本进行,安装指导参考:https://support.huaweicloud.com/prtg-kunpengmdw/redis_01_0001.html

1       搭建准备

华为云购买一台鲲鹏服务器

本文以云服务器KC1实例搭建,云服务器配置如表1-1所示。

表1-1 云服务器配置

项目

说明

规格

kc1.large.2 | 2vCPUs | 4GB

磁盘

系统盘:高IO(40GB)

表1-2 CentOS操作系统要求

项目

说明

-

CentOS

7.6

在公共镜像中已提供。

Kernel

4.14.0-115

在公共镜像中已提供。

2       安装Redis

cd /opt wget http://download.redis.io/releases/redis-4.0.9.tar.gz tar -zxvf redis-4.0.9.tar.gz cd redis-4.0.9 make -j4 make install

3       创建和启动多个Redis节点

Redis要求 一主一从的搭配至少要 六个节点,形成三对主从,我们需要修改配置文件,然后分别用不同的Redis配置文件启动Redis即可。

1)   创建文件夹

计划集群中 Redis 节点的端口号为 9001-9006 ,端口号即集群下各实例文件夹。数据存放在 端口号/data 文件夹中

mkdir /opt/redis-cluster cd redis-cluster/ mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data

2)   拷贝和修改配置文件

如下操作节点9001,其他几个节点做类似操作。

cp /opt/redis-4.0.9/redis.conf /opt/redis-cluster/9001

修改 redis.conf 配置和单点唯一区别是下图部分,其余还是常规的这几项:

port 9001             #每个节点的端口号 daemonize yes           # redis后台运行 bind 127.0.0.1           #默认绑定本地地址,导致其它地方不可远程访问  bind xx.xx.xx.xx          #修改为局域网中的IP地址,其他节点可通过局域网IP访问 dir /opt/redis-cluster/9001/data/ #数据文件存放位置 pidfile /var/run/redis_9001.pid  #pid 9001和port要对应 cluster-enabled yes        #启动集群模式 cluster-config-file nodes9001.conf    #9001和port要对应 cluster-node-timeout 15000       #超时时间 appendonly yes             #开启AOF日志

3)   启动各个Redis节点

redis-server /opt/redis-cluster/9001/redis.conf redis-server /opt/redis-cluster/9002/redis.conf redis-server /opt/redis-cluster/9003/redis.conf redis-server /opt/redis-cluster/9004/redis.conf redis-server /opt/redis-cluster/9005/redis.conf redis-server /opt/redis-cluster/9006/redis.conf

可以检查一下是否启动成功:ps -el | grep redis

4       搭建集群

redis-cli –cluster create xx.xx.xx.xx:9001 xx.xx.xx.xx:9002 xx.xx.xx.xx:9003 xx.xx.xx.xx:9004 xx.xx.xx.xx:9005 xx.xx.xx.xx:9006 --cluster-replicas 1 redis-cli --cluster help #查看操作集群的命令帮助

说明:

(1)--replicas 1 表示主从复制比例为 1:1,即一个主节点对应一个从节点;然后,默认给我们分配好了每个主节点和对应从节点服务,以及 solt 的大小,因为在 Redis 集群中有且仅有 16383 个 solt ,默认情况会给我们平均分配,当然你可以指定,后续的增减节点也可以重新分配。

鲲鹏服务器Redis集群搭建

(2) 搭建Redis集群的教程很多,介绍的也很全面,但是大多数 还是使用Ruby脚本的版本,安装Ruby本身也不是一件简单的事情,redis-5.0.0之后已经将 redis-trib.rb 脚本的功能全部集成到 redis-cli之中了

5       测试集群

1)         依然是通过客户端命令连接上,通过集群命令看一下状态和节点信息等。

/usr/local/redis-cluster/bin/redis-cli -c -h 192.168.119.131 -p 9001 cluster info cluster nodes

通过命令,可以详细的看出集群信息和各个节点状态,主从信息以及连接数、槽信息等。

2)         设置操作

当我们 set a hello时,出现了 Redirected to slot 信息并自动连接到了9003节点。这也是集群的一个数据分配特性

进行 读写操作时会根据 key计算出的slot,重新定位到 拥有该slot的节点,执行对应的命令。只有 Master节点拥有 slot,读写都在 Master 节点进行

鲲鹏 Redis

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:今天,四项可信云最佳实践奖!
下一篇:【CANN训练营进阶班应用课笔记】在AI1S云服务器上体验DVPP的JPEGD-RESIZE-JPEGE
相关文章