千家信息网

redis群集

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,Redis群集Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来
千家信息网最后更新 2025年12月02日redis群集

Redis群集


Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。

GB < TB < PB
---
Redis 集群采用了P2P的模式,完全去中心化。Redis 把所有的 Key 分成了 16384 个 slot,每个 Redis 实例负责其中一部分 slot 。集群中的所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新。

Redis 客户端可以在任意一个 Redis 实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。


Redis 集群搭建规划,由于集群至少需要6个节点(3主3从模式),
计划是在一台机器上模拟一个集群, 这和生产环境的集群搭建没本质区别


(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.

  (2)节点的fail是通过集群中超过半数的节点检测失效时才生效.

  (3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可


创建多节点

cluster集群 HA高可用
先源码装一个redis


创建实例目录

mkdir /etc/redis-clustercd /etc/redis-clustermkdir -p 6379/data 6380/data 6381/data 6382/data 6383/data 6384/data 

复制执行脚本

mkdir /etc/redis-cluster/bincd /opt/redis-5.0.0/src/cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /etc/redis-cluster/bin


复制一个新 Redis 实例

cp /etc/redis/* /etc/redis-cluster/6379vi /etc/redis-cluster/6379/redis.conf    port 6379(每个节点的端口号)    daemonize yes    bind 192.168.86.130(绑定当前机器 IP)    dir "/etc/redis-cluster/6379/data/"(数据文件存放位置)    pidfile /var/run/redis_6379.pid(pid 6379和port要对应)    cluster-enabled yes(启动集群模式)    cluster-config-file nodes6379.conf(6379和port要对应)    cluster-node-timeout 15000    appendonly yes


\cp -rf 命令是不使用别名来复制

cp -rf /etc/redis-cluster/6379/*  /etc/redis-cluster/6380cp -rf  /etc/redis-cluster/6379/*  /etc/redis-cluster/6381cp -rf  /etc/redis-cluster/6379/*  /etc/redis-cluster/6382cp -rf  /etc/redis-cluster/6379/*  /etc/redis-cluster/6383cp -rf  /etc/redis-cluster/6379/*  /etc/redis-cluster/6384


分别修改6380 、6381、6382、6383、6384节点配置文件

vi /etc/redis-cluster/6380/redis.conf:%s/6379/6380/g       //文本内使用全局替换vi /etc/redis-cluster/6381/redis.conf:%s/6379/6381/g       //文本内使用全局替换vi /etc/redis-cluster/6382redis.conf:%s/6379/6382g       //文本内使用全局替换vi /etc/redis-cluster/6383redis.conf:%s/6379/6383g       //文本内使用全局替换vi /etc/redis-cluster/6384redis.conf:%s/6379/6384g       //文本内使用全局替换


开启所有节点服务(&是后台运行)

for i in 79 80 81 82 83 84doredis-server /etc/redis-cluster/63$i/redis.conf & done


登录随便一个节点验证 确认节点服务可以正常登陆

redis-cli -h 192.168.80.100 -p 6379


安装群集需要的 ruby环境
由于 Redis 集群需要使用 ruby 命令,所以我们需要安装 ruby 和相关接口。

yum -y install ruby ruby-devel rubygems rpm-build


升级ruby版本

gem sources -a http://mirrors.aliyun.com/rubygems/ 


添加aliyun镜像并检测Ruby版本

安装RAM

(Ruby Version Manager )是一款RAM的命令行工具,可以使用RAM轻松安装,管理Ruby版本。RVM包含了Ruby的版本管理和Gem库管理(gemset)

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDBcurl -sSL https://get.rvm.io | bash -s stable source /etc/profile.d/rvm.



查看Ruby版本:

rvm list known


安装Ruby,从上面查到的信息随便找一个比2.2.2版本要高的就行:

rvm install 2.6



用 gem 这个命令来安装 redis接口 gem是ruby的一个工具包

gem install redis   



安装完成ruby环境 执行下面命令确认是否正常

redis-trib.rb


创建群集
简单解释一下这个命令:调用 ruby 命令来进行创建集群,--replicas 1 表示主从复制比例为 1:1,即一个主节点对应一个从节点;然后,默认给我们分配好了每个主节点和对应从节点服务,以及 solt 的大小,因为在 Redis 集群中有且仅有 16383 个 solt ,默认情况会给我们平均分配,当然你可以指定,后续的增减节点也可以重新分配。

./redis-trib.rb create --replicas 1 192.168.80.100:6379 192.168.80.100:6380 192.168.80.100:6381 192.168.80.100:6382 192.168.80.100:6383 192.168.80.100:6384(yes)

redis-cli --cluster create 192.168.80.100:6379 192.168.80.100:6380 192.168.80.100:6381 192.168.80.100:6382 192.168.80.100:6383 192.168.80.100:6384 --cluster-replicas 1


验证
通过客户端命令连接上,通过集群命令看一下状态和节点信息等。

/usr/local/redis-cluster/bin/redis-cli -c -h 192.168.80.100 -p 6379   //登录        192.168.86.130:6379> cluster info            //查看状态        192.168.86.130:6379> cluster nodes      //查看节点信息

节点 集群 命令 版本 实例 模式 全局 客户 客户端 文本 信息 数据 服务 环境 互联 分配 管理 主从 互联网 企业 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海软件开发 了解志先科技 学软件开发必须去培训班吗 软件开发毕业职业规划 公共场合网络安全吗 柳州定制软件开发 苏州互联网软件开发价格咨询 计算机游戏软件开发专业院校 自考计算机网络技术试卷答案 我的世界怎么弄雪球回城服务器 多用户登录数据库 数据库技术的高级应用课程 南京软件开发培训学习 优酷如何部署网络安全架构 服务器主机做视频渲染好不好 郴州市网络安全知识竞赛通知 安仁电脑软件开发培训哪家好 关系型数据库技术与应用 软件开发用户数据 为什么苹果下载说没有服务器 软件开发入门基础知识书籍 苹果8连接苹果id服务器出错 校园网络安全知识讲座策划书 数据库系统概述 和平精英主播选哪个服务器 灵盾网络技术有限公司 西安服务器托管 兴化工业网络技术联系方式 网络安全暗月视频 数据库登录测试 安全狗提示服务器被入侵
0