CentOS7搭建Redis集群-三主三从

2023-12-22 09:58

本文主要是介绍CentOS7搭建Redis集群-三主三从,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用两台机器,搭建redis三主三从的集群环境,我同时在两台机器上安装

IP:192.168.3.102和192.168.3.103

1.安装环境依赖

2.下载安装包并解压

我安装的时候,官网的最新版是6.0.5,但是安装错误,本人Linux知识有限,故降版本进行安装,5.0.8

wget http://download.redis.io/releases/redis-5.0.8.tar.gz

tar -zxf ./redis-5.0.8.tar.gz 

3.编译安装

cd redis-6.0.5

make MALLOC=libc

make install

cd /usr/local/bin/

检查/usr/local/bin/下是否有如下图的几个文件,没有的话切换到redis的src目录复制,执行一下命令:

cp redis-server redis-cli redis-sentinel redis-benchmark redis-check-aof redis-check-rdb /usr/local/bin/

4.配置内核参数,避免数据被截断

sysctl -w vm.overcommit_memory=1

5.创建多个实例的文件夹

cd /usr/local/

mkdir redis-cluster

cd redis-cluster/

mkdir 7000 7001 7002

6.修改配置文件

将原有的配置文件拷贝到之前创建的各个实例的目录中

cd /usr/local/redis-5.0.8/

cp redis.conf ../redis-cluster/7000

cp redis.conf ../redis-cluster/7001

cp redis.conf ../redis-cluster/7002

vi /usr/local/redis-cluster/7000/redis.conf 

通用的配置

bind 192.168.3.102 #设置当前服务器的IP

protected-mode no #不同的服务器进行节点的联通,不能设为yes

daemonize yes #设置后台运行redis

appendonly yes #aof日志开启,每次进行写操作都记录日志

cluster-enabled yes #开启集群

cluster-node-timeout 15000 #设置请求超时时间,默认为15秒

不同实例不同的配置

port 7000

pidfile /var/run/redis_7000.pid

logfile /var/log/redis/redis_7000.log

dbfilename dump_7000.rdb

appendfilename "applendonly_7000.aof"

cluster-config-file nodes_7000.conf

7.启动测试

./redis-server /usr/local/redis-cluster/7000/redis.conf

./redis-server /usr/local/redis-cluster/7001/redis.conf

./redis-server /usr/local/redis-cluster/7002/redis.conf

使用ps -ef|grep redis | grep cluster查看是否都启动成功

8.防火墙开通策略,防火墙关闭无需配置

firewall-cmd --zone=public --add-port=7000-7002/tcp --permanent

firewall-cmd --zone=public --add-port=17000-17002/tcp --permanent

注意:必须开集群总线端口,集群总线端口=端口号 +10000,例:7000的集群总线端口是17000。这个集群总线端口不开放,集群的时候外部服务器的节点添加不进来

9.验证服务

telnet 192.168.3.10X 700X

10.安装ruby环境

yum -y install ruby rubygems

11.更新gem

gem sources -a http://ruby.taobao.org/

12.创建集群

cd /usr/local/bin/

/redis-cli --cluster create 192.168.3.102:7000 192.168.3.102:7001 192.168.3.102:7002 192.168.3.103:7000 192.168.3.103:7001 192.168.3.103:7002 --cluster-replicas 1

注意:Redis5.0使用./redis-cli 命令创建集群

屏幕出现type 'yes' to accept,输入 yes ,就是接受自动分配的三主三从

出现以下内容代表成功!

13.连接验证

redis-cli -h 192.168.33102 -c -p 7000

info replication

查看集群信息

cluster info

查看所有集群节点

cluster nodes

至此集群搭建完成。

篇外(上述已配置完集群,下述为参考操作):(1)手动在slave节点上指定master节点,把当前节点设置为node_id的slave,即指定当前节点的master节点,在每个slave节点上执行:cluster replicate masterid(可使用cluster nodes查看)

(2)把集群配置写入磁盘,每个节点都需要执行:cluster saveconfig

总结:

1、 去中心化,分片存储,把所有的物理节点映射到[0-16383]共16384个slot(槽位)上,并不一定平均分配。
2、 Redis集群预分好16384个桶,当需要在 Redis 集群中放置一个 key-value 时,根据 CRC16(key) mod 16384的值,决定将一个key放到哪个桶中。
3、 支持主从机制,一个master可以有一个或多个从节点来保证集群的高可用性。
4、 master宕机需要经过集群中的所有master投票,如果有半数以上节点通信超时,则认为当前master宕掉。
5、 如果Cluster集群中的master没有slave,那么任意一台master宕掉后,集群不可用。
6、 集群如果超多半数以上master挂掉,无论是否有slave,集群进入fail状态。
7、 slave节点不会分配槽位
8、 Cluster集群最多支持1000个节点

这篇关于CentOS7搭建Redis集群-三主三从的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/523538

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex