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

相关文章

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

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

Redis Cluster模式配置

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

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

Java如何从Redis中批量读取数据

《Java如何从Redis中批量读取数据》:本文主要介绍Java如何从Redis中批量读取数据的情况,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一.背景概述二.分析与实现三.发现问题与屡次改进3.1.QPS过高而且波动很大3.2.程序中断,抛异常3.3.内存消

Redis中的Lettuce使用详解

《Redis中的Lettuce使用详解》Lettuce是一个高级的、线程安全的Redis客户端,用于与Redis数据库交互,Lettuce是一个功能强大、使用方便的Redis客户端,适用于各种规模的J... 目录简介特点连接池连接池特点连接池管理连接池优势连接池配置参数监控常用监控工具通过JMX监控通过Pr