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

相关文章

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Redis的持久化之RDB和AOF机制详解

《Redis的持久化之RDB和AOF机制详解》:本文主要介绍Redis的持久化之RDB和AOF机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述RDB(Redis Database)核心原理触发方式手动触发自动触发AOF(Append-Only File)核

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

浅析如何保证MySQL与Redis数据一致性

《浅析如何保证MySQL与Redis数据一致性》在互联网应用中,MySQL作为持久化存储引擎,Redis作为高性能缓存层,两者的组合能有效提升系统性能,下面我们来看看如何保证两者的数据一致性吧... 目录一、数据不一致性的根源1.1 典型不一致场景1.2 关键矛盾点二、一致性保障策略2.1 基础策略:更新数

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚