iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >搭建Redis集群的方法
  • 121
分享到

搭建Redis集群的方法

2023-06-27 22:06:55 121人浏览 安东尼
摘要

这篇文章主要讲解了“搭建Redis集群的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“搭建Redis集群的方法”吧!Redis集群是一个由多个主从节点群组成的分布式服务集群,它具有复制、

这篇文章主要讲解了“搭建Redis集群的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“搭建Redis集群的方法”吧!

Redis集群是一个由多个主从节点群组成的分布式服务集群,它具有复制、高可用和分片特性。Redis集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到上万个节点(官方推荐不超过1000个节点)。redis集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单。

搭建Redis集群的方法

搭建环境

系统:Centos7.4

服务器金山云

安装ruby环境

[root@jsy-bj-test00 ~]# yum install -y ruby rubygems

复制6份redis服务

[work@jsy-bj-test00 ~]$ cp -rp redis redis1[work@jsy-bj-test00 ~]$ cp -rp redis redis2[work@jsy-bj-test00 ~]$ cp -rp redis redis3

redis配置文件修改

#六个节点需做如下更改[work@jsy-bj-test00 ~]$ vim redis1/etc/redis.conf[work@jsy-bj-test00 ~]$ sed -i 's/port 6379/port 6380/g' redis5/etc/redis.conf #修改端口 port 6380#打开注释,开启集群模式cluster-enabled yes#集群的配置文件cluster-config-file nodes-6380.conf[work@jsy-bj-test00 ~]$ sed -i 's/cluster-config-file nodes-6379.conf/cluster-config-file nodes-6380.conf/g' redis5/etc/redis.conf#pidfile文件pidfile /var/run/redis_6380.pid[work@jsy-bj-test00 ~]$ sed -i 's/pidfile \/var\/run\/redis_6380.pid/pidfile \/var\/run\/redis_6380.pid/g' redis5/etc/redis.conf#日志文件  logfile "/home/work/logs/redis/6380.log"[work@jsy-bj-test00 ~]$ sed -i 's/logfile "\/home\/work\/logs\/redis\/6379.log"/logfile "\/home\/work\/logs\/redis\/6380.log"/g' redis5/etc/redis.conf#rdb持久化文件  dbfilename dump6380.rdb[work@jsy-bj-test00 ~]$ sed -i 's/dbfilename dump6379.rdb/dbfilename dump6380.rdb/g' redis5/etc/redis.conf#请求超时,单位毫秒cluster-node-timeout 5000#开启aof持久化方式appendonly yes#配置持久化文件appendfilename "appendonly6379.aof"[work@jsy-bj-test00 ~]$ sed -i 's/appendfilename "appendonly6379.aof"/appendfilename "appendonly6383.aof"/g' redis5/etc/redis.conf

编写集群启动脚本和停止脚本

启动脚本start_all.sh

/home/work/redis/bin/redis-server /home/work/redis/etc/redis.conf &/home/work/redis/bin/redis-server /home/work/redis/etc/redis6380.conf &/home/work/redis/bin/redis-server /home/work/redis/etc/redis6381.conf &/home/work/redis/bin/redis-server /home/work/redis/etc/redis6382.conf &/home/work/redis/bin/redis-server /home/work/redis/etc/redis6383.conf &/home/work/redis/bin/redis-server /home/work/redis/etc/redis6384.conf &

关闭脚本stop_all.sh

/home/work/redis/bin/redis-cli -p 6379 -a test shutdown/home/work/redis/bin/redis-cli -p 6380 -a test shutdown/home/work/redis/bin/redis-cli -p 6381 -a test shutdown/home/work/redis/bin/redis-cli -p 6382 -a test shutdown/home/work/redis/bin/redis-cli -p 6383 -a test shutdown/home/work/redis/bin/redis-cli -p 6384 -a test shutdown

执行创建集群命令

有如下报错

[work@jsy-bj-test00 src]$ ./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'from ./redis-trib.rb:25:in `

‘

原因:安装redis接口报错ruby版本过低

[root@jsy-bj-test00 ~]# gem install redisFetching: redis-4.1.3.gem (100%)ERROR: Error installing redis:redis requires Ruby version >= 2.3.0.

解决办法到官网下载最新稳定版源代码 Http://www.ruby-lang.org/en/downloads/ 进行编译安装

[work@jsy-bj-test00 soft]$ tar zxvf ruby-2.7.0.tar.gz[work@jsy-bj-test00 soft]$ cd ruby-2.7.0[work@jsy-bj-test00 ruby-2.7.0]$ ./configure --prefix=/home/work/ruby && make && make install

安装redis接口

[work@jsy-bj-test00 bin]$ gem install redis

再次执行创建集群命令

[work@jsy-bj-test00 src]$ ./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384>>> Creating cluster>>> PerfORMing hash slots allocation on 6 nodes.........>>> Nodes configuration updated>>> Assign a different config epoch to each node>>> Sending CLUSTER MEET messages to join the clusterWaiting for the cluster to join...>>> Performing Cluster Check (using node 127.0.0.1:6379)......[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.

创建成功,查看集群状态

[work@jsy-bj-test00 ~]$ ./redis/bin/redis-cli -h 127.0.0.1 -p 6379 -c127.0.0.1:6379> cluster infocluster_state:okcluster_slots_assigned:16384cluster_slots_ok:16384cluster_slots_pfail:0cluster_slots_fail:0cluster_known_nodes:6cluster_size:3cluster_current_epoch:6cluster_my_epoch:1cluster_stats_messages_sent:627cluster_stats_messages_received:627

查看集群节点信息

127.0.0.1:6379> cluster nodes565246bf31d8e05e464db7455521b1a9f165a9cd 127.0.0.1:6380 master - 0 1578447776230 2 connected 5461-109221b99b2a1e4b530501476ab48422c75f30423fd19 127.0.0.1:6383 slave 565246bf31d8e05e464db7455521b1a9f165a9cd 0 1578447778233 5 connected735ad5778458059316794b9378d4b81aaff20322 127.0.0.1:6379 myself,master - 0 0 1 connected 0-5460757c2c11ecebfc607aa10a6877e348d0e2da484f 127.0.0.1:6381 master - 0 1578447777732 3 connected 10923-16383f22efc2bcfcd11cee6487ebc9c75de3b59f5e1d0 127.0.0.1:6382 slave 735ad5778458059316794b9378d4b81aaff20322 0 1578447776230 4 connectedb8bba94b9647caa8600363144fd7108082e45f56 127.0.0.1:6384 slave 757c2c11ecebfc607aa10a6877e348d0e2da484f 0 1578447777232 6 connected#这是很重要的命令,我们需要关心的信息有:#第一个参数:节点ID#第二个参数:IP:PORT@tcp 这里一个坑,jedis-2.9.0之前的版本解析@出错#第三个参数:标志(Master,Slave,Myself,Fail...)#第四个参数:如果是从机则是主机的节点ID#最后两个参数:连接的状态和槽的位置。

集群管理相关命令

#集群增加节点,先复制两个配置文件,并修改配置文件内容[work@jsy-bj-test00 etc]$ cp -p redis.conf redis6385.conf[work@jsy-bj-test00 etc]$ cp -p redis.conf redis6386.conf[work@jsy-bj-test00 etc]$ sed -i 's/6379/6385/g' redis6385.conf[work@jsy-bj-test00 etc]$ sed -i 's/6379/6386/g' redis6386.conf

启动6385节点

[work@jsy-bj-test00 bin]$ ./redis-server /home/work/redis/etc/redis6385.conf &

将集群管理工具软连到redis的bin下

[work@jsy-bj-test00 bin]$ ln -s /home/work/soft/redis-3.2.11/src/redis-trib.rb /home/work/redis/bin/redis-trib.rb

将新节点加入集群master

[work@jsy-bj-test00 bin]$ ./redis-trib.rb add-node 127.0.0.1:6385 127.0.0.1:6379>>> Adding node 127.0.0.1:6385 to cluster 127.0.0.1:6379>>> Performing Cluster Check (using node 127.0.0.1:6379)......[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.>>> Send CLUSTER MEET to node 127.0.0.1:6385 to make it join the cluster.[OK] New node added correctly.

查看集群状态,未分配槽位

[work@jsy-bj-test00 bin]$ ./redis-cli -h 127.0.0.1 -p 6379 -c cluster nodesd00d05f601df0b69df0c2cc532b636d2c83347be 127.0.0.1:6385 master - 0 1578450280191 0 connected

给6385节点分配槽位

[work@jsy-bj-test00 bin]$ ./redis-trib.rb reshard 127.0.0.1:6379>>> Performing Cluster Check (using node 127.0.0.1:6379)......[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.How many slots do you want to move (from 1 to 16384)? 500What is the receiving node ID? d00d05f601df0b69df0c2cc532b636d2c83347bePlease enter all the source node IDs.Type 'all' to use all the nodes as source nodes for the hash slots.Type 'done' once you entered all the source nodes IDs.Source node #1:allDo you want to proceed with the proposed reshard plan (yes/no)? yes#第一个参数:需要移动槽的个数,#第二个参数:接受槽的节点ID,#第三个参数:输入"all"表示从所有原节点中获取槽,#第四个参数:输入"yes"开始移动槽到目标结点id#查看6385节点信息,已经分配槽位[work@jsy-bj-test00 bin]$ ./redis-cli -h 127.0.0.1 -p 6379 -c cluster nodesd00d05f601df0b69df0c2cc532b636d2c83347be 127.0.0.1:6385 master - 0 1578452422167 7 connected 0-165 5461-5627 10923-11088

添加从节点,启动6386节点并加入集群

[work@jsy-bj-test00 bin]$ ./redis-server /home/work/redis/etc/redis6386.conf &[work@jsy-bj-test00 bin]$ ./redis-trib.rb add-node --slave --master-id d00d05f601df0b69df0c2cc532b636d2c83347be 127.0.0.1:6386 127.0.0.1:6385>>> Adding node 127.0.0.1:6386 to cluster 127.0.0.1:6385>>> Performing Cluster Check (using node 127.0.0.1:6385)......[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.>>> Send CLUSTER MEET to node 127.0.0.1:6386 to make it join the cluster.Waiting for the cluster to join.>>> Configure node as replica of 127.0.0.1:6385.[OK] New node added correctly.

查看6386节点状态

[work@jsy-bj-test00 bin]$ ./redis-cli -h 127.0.0.1 -p 6379 -c cluster nodes6845878cbef3fe25f19a70a8db3eb29abb1b9ea6 127.0.0.1:6386 slave d00d05f601df0b69df0c2cc532b636d2c83347be 0 1578452805439 7 connected

删除节点

[work@jsy-bj-test00 bin]$ ./redis-trib.rb del-node 127.0.0.1:6383 1b99b2a1e4b530501476ab48422c75f30423fd19>>> Removing node 1b99b2a1e4b530501476ab48422c75f30423fd19 from cluster 127.0.0.1:6383>>> Sending CLUSTER FORGET messages to the cluster...>>> SHUTDOWN the node.

感谢各位的阅读,以上就是“搭建Redis集群的方法”的内容了,经过本文的学习后,相信大家对搭建Redis集群的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 搭建Redis集群的方法

本文链接: https://www.lsjlt.com/news/314519.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • redis搭建集群的方法
    这篇文章给大家分享的是有关redis搭建集群的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。redis集群的搭建集群搭建:Redis集群至少需要3个节点第一步:创建一个文件夹...
    99+
    2022-10-18
  • redis集群搭建的方法
    这篇文章主要介绍redis集群搭建的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!redis集群搭建在介绍正式内容之前,首先我们来介绍一下redis单机版的搭建步骤是怎样的。下载...
    99+
    2022-10-18
  • 搭建Redis集群的方法
    这篇文章主要讲解了“搭建Redis集群的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“搭建Redis集群的方法”吧!Redis集群是一个由多个主从节点群组成的分布式服务集群,它具有复制、...
    99+
    2023-06-27
  • Redis6.0搭建集群Redis-cluster的方法
    此处以三台服务器部署为例,IP地址分别为192.168.124.23,192.168.124.24,192.168.124.25 使用普通用户ubuntu登录 总共三个主节点和三个从...
    99+
    2022-11-12
  • windows下搭建redis集群的方法
    小编给大家分享一下windows下搭建redis集群的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言:集群是指通过添加服...
    99+
    2022-10-18
  • redis集群搭建的方法是什么
    要搭建Redis集群,可以按照以下步骤进行操作:1. 准备多台服务器,每台服务器上都安装Redis。2. 在每台服务器上的Redis...
    99+
    2023-09-09
    redis
  • redis集群搭建
    Redis 5.0之后版本的高可用集群搭建 Redis系统介绍: Redis的基础介绍与安装使用步骤:https://www.jianshu.com/p/2a23257af57b Redis的基础数据结构与使用:https...
    99+
    2019-03-23
    redis集群搭建
  • docker redis集群搭建的方法是什么
    搭建Redis集群的方法有两种:官方提供的Redis集群模式和第三方工具提供的Redis集群模式。1. 官方提供的Redis集群模式...
    99+
    2023-09-16
    docker redis
  • Windows下搭建Redis集群的方法步骤
    目录Redis集群:在Windows系统下搭建Redis集群:1.下载并安装Redis2.下载并安装ruby3.创建Redis集群Redis集群: 如果部署到多台电脑,就跟普通的集群...
    99+
    2022-11-13
  • Redis集群搭建的三种方式
    Redis集群搭建的三种方式@TOC 1.Redis主从 1.1 Redis主从原理 和MySQL需要主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生性能瓶颈,特别是在读压力上,...
    99+
    2023-09-15
    redis java linux
  • redis主从集群搭建的方法是什么
    搭建Redis主从集群的方法有以下几种:1. 使用Redis Sentinel(哨兵):Redis Sentinel是Redis官方...
    99+
    2023-09-09
    redis
  • docker实现redis集群搭建的方法步骤
    目录一、创建redis docker基础镜像 二、制作redis节点镜像 三、运行redis集群  引用:摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都...
    99+
    2022-11-12
  • linux集群的搭建方法
    这篇文章主要介绍“linux集群的搭建方法”,在日常操作中,相信很多人在linux集群的搭建方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux集群的搭建方法”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-16
  • Spark集群搭建的方法
    这篇文章主要介绍“Spark集群搭建的方法”,在日常操作中,相信很多人在Spark集群搭建的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spark集群搭建的方法”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-27
  • ClickHouse集群搭建的方法
    这篇文章主要介绍“ClickHouse集群搭建的方法”,在日常操作中,相信很多人在ClickHouse集群搭建的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ClickH...
    99+
    2022-10-18
  • MongoDB搭建集群的方法
    小编给大家分享一下MongoDB搭建集群的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为什么使用集群架构?主从:故障转移:...
    99+
    2022-10-18
  • Kubernetes集群的搭建方法
    本篇内容主要讲解“Kubernetes集群的搭建方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Kubernetes集群的搭建方法”吧!0. 概要使用kubeadm搭建一个单节点kuberne...
    99+
    2023-06-19
  • Redis 5.02官方集群的搭建过程
    这篇文章主要介绍“Redis 5.02官方集群的搭建过程”,在日常操作中,相信很多人在Redis 5.02官方集群的搭建过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Re...
    99+
    2022-10-18
  • Redis集群搭建的方式有哪些
    这篇文章主要介绍Redis集群搭建的方式有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、单节点实例单节点实例还是比较简单的,平时做个测试,写个小程序如果需要用到缓存的话,启动一个Redis 还是很轻松的,做为...
    99+
    2023-06-15
  • hadoop3.3集群搭建方法
    本篇内容介绍了“hadoop3.3集群搭建方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!分布式服务器集群上存储海量数据并运行分布式分析应...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作