千家信息网

Redis中怎么搭建一个横向集群

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章为大家展示了Redis中怎么搭建一个横向集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.概述:在redis3.0版本之前只支持主从复制(纵向集群
千家信息网最后更新 2026年11月02日Redis中怎么搭建一个横向集群

本篇文章为大家展示了Redis中怎么搭建一个横向集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

1.概述:

在redis3.0版本之前只支持主从复制(纵向集群),纵向集群解决了读的压力,但是写的操作只能在主库上完成。redis3.0版本之后包括3.0可以支持横向集群,本文章尝试介绍redis的横向集群以及如何在真实环境中搭建。

2.实现原理:

Redis集群中有16384个哈希槽,而每一个key都是哈希槽的一部分,所以只要计算出key的哈希槽,就知道这个key对应16384中的哪一个,计算原理是对key的CRC16取模16384,而Redis群集中的每个节点都负责哈希槽的子集,有多少个节点就把哈希槽分成几片。比如有A,B,C 3个节点集群,哈希槽的分配大概如下:

  • 节点A包含从0到5500的哈希槽。

  • 节点B包含从5501到11000的哈希槽。

  • 节点C包含从11001到16383的哈希槽。

比如我的key是name计算出的 哈希槽 是 100,100这个哈希槽在节点A,所以自然的redis就把这个值存到节点A的redis服务器上,获取数据也是先计算key的哈希槽,然后再去对应的节点获取数据,从而读写都实现了集群。

3.搭建横向集群

实例基础环境:centos7系统 ,redis版本5.0.6(目前的最新版本)

实例情况:创建6个redis服务器,3台主库3台从库,即每台主库分配一台从库,如果主库发生故障,则从库可以进行故障转移升级为主库

1.下载安装redis

# 下载redis安装包到 /usr/local/src目录下cd /usr/local/src# 各个版本下载地址:http://download.redis.io/releaseswget http://download.redis.io/releases/redis-5.0.6.tar.gz# 解压tar zxf redis-5.0.6.tar.gz# 进入redis-5.0.6的源码目录cd redis-5.0.6/# 编译redismake

把新建六个目录,用来存放6台redis服务和对应的配置文件

cd /datamkdir redis1 redis2 redis3 redis4 redis5 redis6

把编译后的redis-server和redis.conf文件分别复制到新建的六个redis目录

cd /usr/local/src/redis-5.0.6cp redis.conf /data/redis1cp redis.conf /data/redis2cp redis.conf /data/redis3cp redis.conf /data/redis4cp redis.conf /data/redis5cp redis.conf /data/redis6cd /usr/local/src/redis-5.0.6/srccp redis-server /data/redis1cp redis-server /data/redis2cp redis-server /data/redis3cp redis-server /data/redis4cp redis-server /data/redis5cp redis-server /data/redis6

分别配置这六台服务器的redis.conf

需要修改的参数如下:

port 每台服务器对外的端口这里我为每台分别分配如下 6001 6002 6003 6004 6005 6006

cluster-enabled yes 打开这个配置且值为yes,指定redis为集群节点启动

cluster-config-file nodes.conf 指定节点配置文件

daemonize yes 让每台redis以守护态启动(后台启动)

分别修改每台redis服务器的配置文件

cd /data/redis1vim redis.conf

redis1服务器redis.conf配置修改如下

port 6001daemonize yespidfile /var/run/redis_6001.pidcluster-enabled yescluster-config-file nodes.confcluster-node-timeout 15000

redis2服务器redis.conf配置修改如下

port 6002daemonize yespidfile /var/run/redis_6002.pidcluster-enabled yescluster-config-file nodes.confcluster-node-timeout 15000

redis3,redis4,redis5,redis6以此类推修改对应的配置文件

配置好六台服务器之后,分别启动六台redis服务器

cd /data/redis1./redis-server redis.confcd /data/redis2./redis-server redis.confcd /data/redis3./redis-server redis.confcd /data/redis4./redis-server redis.confcd /data/redis5./redis-server redis.confcd /data/redis6./redis-server redis.conf

这时我们六台服务全部启动了,下一步就是将这六台服务器创建成一个集群

使用redis-cli创建集群

cd /usr/local/src/redis-5.0.6/src/./redis-cli --cluster create \127.0.0.1:6001 \127.0.0.1:6002 \127.0.0.1:6003 \127.0.0.1:6004 \127.0.0.1:6005 \127.0.0.1:6006 \--cluster-replicas 1

此时控制台提示输入yes,输入yes回车即可

出现以下说明创建成功!

创建集群完毕后会提示All 16384 slots covered

接下来用命令行工具测试:

[root@VM_0_10_centos src]# ./redis-cli -c -p 6001127.0.0.1:6001> set name liuhaizhuang-> Redirected to slot [5798] located at 127.0.0.1:6002OK127.0.0.1:6002> get name"liuhaizhuang"127.0.0.1:6002>

我们发现从6001这个服务器保存的数据,系统自动分配到6002这个服务器中了,说明横向集群搭建完毕!

2.集群配置参数说明

# 如果是yes,则启用Redis Cluster支持,如果是no,则redis会独立启动
cluster-enabled
# 这个文件是redis集群节点每次发生更改时都会自动持久保存集群配置的文件,用户不可编辑
cluster-config-file
# Redis群集节点不可用的最长时间(如果在设置的时间内,不当做失败处理)
cluster-node-timeout
# 如果设置为0,则从服务器将始终尝试对主服务器进行故障转移,而不管主服务器和从服务器之间的链接保持断开状态的时间长短,如果该值为正,则将最大断开时间计算为节点超时值乘以此选项提供的系数
cluster-slave-validity-factor
# 一个主机将保持连接的最小数量的从机
cluster-migration-barrier
#如果设置为yes,默认情况下,如果某个节点未覆盖一定比例的key空间,集群将停止接受写入。如果该选项设置为no,即使仅可以处理有关key子集的请求,群集仍将提供查询。
cluster-require-full-coverage

上述内容就是Redis中怎么搭建一个横向集群,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

集群 服务 服务器 节点 哈希 配置 文件 横向 版本 时间 目录 分配 故障 数据 支持 内容 原理 参数 子集 实例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 鸠鸠互联网科技 科技制造互联网公司 互联网未来科技 小马过河互联网科技 银优互联网科技有限公司 互联网女皇 腾讯科技 狮子座互联网科技培训 深圳期待互联网科技 四个字互联网科技公司取名 承德科技产业互联网发展 湖南诚度互联网科技有限公司 贵州叶脉互联网科技有限公司所属行业 世界互联网科技公司市值排名 江阴互联网智能科技产品进口 佛山市拉法互联网科技有限公司 智帮互联网科技公司最近动向 浙南科技城互联网大厦招聘 互联网风格科技公司名称 互联网科技平台产品运营 互联网科技对化妆品行业 互联网黑科技 互联网科技工作委员会毛军 智能科技公司是互联网公司吗 广州互联网科技公司 央行互联网金融科技公司 华服互联网科技官网 中化能源互联网科技招聘 宝灵互联网科技有限公司 四川互联网展示科技馆设计 深圳互联网科技园地址
0