前言:

本文将介绍Redis5.0三主三从集群搭建以及集群配置。

一.资源配置(3主3从集群)

1.以下为生产环境下,集群搭建所需资源配置:

资源 配置
cpu 4核*6
内存 16G*6
硬盘 20G *6
linux版本 CentOS 7.5 64bit

2.服务器分配:

linux服务器 ip
1 10.39.77.41
2 10.39.77.42
3 10.39.77.43
4 10.39.77.44
5 10.39.77.45
6 10.39.77.46

3.redis和linux版本:

名称 版本
redis 5.0.8
centos 7.5 ( 64bit )

二.下载

分别在六台服务器执行:

安装wget:

yum install wget

下载redis到/usr/local路径下:

cd  /usr/local && wget http://download.redis.io/releases/redis-5.0.8.tar.gz

三.编译

在所有服务器上,执行下述命令:

解压:

tar -zxvf redis-5.0.8.tar.gz

安装gcc:

yum install gcc

编译Redis

cd redis-5.0.8
make

编译时出现错误:

cd src && make all
make[1]: Entering directory `/home/liuchaofan/redis-3.0.7/src'CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/home/liuchaofan/redis-3.0.7/src'
make: *** [all] Error 2

若出现上述报错,执行命令:

make CFLAGS="-march=x86-64"

编译时另一个报错:

zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory


若出现上述报错,则执行命令:

make MALLOC=libc

编译成功,如下图:

四.安装

在所有服务器上,,执行安装命令:

cd redis-5.0.8 make install

安装成功后,redis-5.0.8的src目录下,会出现redis-server和redis-cli:

redis单机启动测试,测试redis单机编译和安装是否正确:

src/redis-server redis.conf

出现启动成功,则说明安装成功。

测试完成后,要杀死上面启动的redis进程,执行命令:

kill -9  $(ps aux | grep redis | grep -v grep | awk '{print $2}')
或:
kill -9  $(ps aux | grep redis | grep -v grep | awk '{print $2}')  && ps -ef|grep redis

四.集群搭建

1.重命名redis-5.0.8文件夹名为redis

将文件夹重命名为redis,方便以后敲命令操作,也更美观一些。

mv redis-5.0.8 ./redis

2.修改每个服务器的redis.conf配置文件

以下是需要修改的地方摘要,根据自己情况,每个服务器都要配置一遍:

# 开启一个数据db0,默认是16个,我们只开启一个即可
databases 1# 集群需要把这个参数注释掉,不需要再绑定ip,在创建集群时,指定一次ip即可
# bind 127.0.0.1 # 记得创建data目录
dir /usr/local/redis/data# 待验证是否有用
pidfile /usr/local/redis/data/redis_6379.pid#集群节点信息文件名称(将生成在上面dir配置的路径下)
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
cluster-enabled yes# 关闭保护模式(yes 表示只允许本地连接,别的IP将无法连接)
protected-mode no# 开启守护线程,开启后可以后台运行
daemonize yes# 开启AOF模式,no:代表RDB模式
appendonly yes# 设置密码为123456
requirepass 123456# 日志文件地址,记得创建logs目录
#logfile "/usr/local/redis/logs/redis.log"

3.创建redis数据存储和日志目录

将这两个目录挂载到指定位置,方便我们统一查看:

mkdir  /usr/local/redis/datamkdir  /usr/local/redis/logs

注:如果上述路径配置出现错误,启动时会报错,如下:

Can't chdir to './usr/local/redis/data': No such file or directory

解决:
上述报错是,配置文件中,dir ./usr/local/redis/data路径最前面多了个“.”,删除即可。

4.创建集群

redis 5.x以上版本,可以通过redis-cli来创建集群,命令如下:

./src/redis-cli -a 123456 --cluster create  10.39.77.41:6379  10.39.77.42:6379  10.39.77.43:6379  10.39.77.44:6379  10.39.77.45:6379  10.39.77.46:6379  --cluster-replicas 1

若集群创建成功,则出现下图:

然后根据提示输入yes:几秒后,成功如下图。

若安装失败,则出现如果长时间一直输出…,则为失败。

上述命令参数含义:

  • 123456 redis密码
  • 10.39.77.41:6379 10.39.77.42:6379 10.39.77.43:6379 10.39.77.44:6379 10.39.77.45:6379 10.39.77.46:6379 集群真实ip和端口号
  • -cluster-replicas 1 副本保留1份

五.客户端连接集群

在任意一台服务器,执行下述命令,都可以连接成功:

src/redis-cli -h 10.39.77.41 -p 6379 -a 123456 -c

连接成功后,执行下述几个命令,可以测试Redis集群是否创建成功:

# 查看集群主从节点信息
cluster nodes# 查看集群状态
cluster info# 查看存在的所有键值对
keys *

注:使用RDM客户端连接集群时,出现两个主节点无法连接现象:

通过redis-cli可以任意连接,但RDM客户端却出现两个节点连接不上,删除所有节点的usr/local/redis/data目录下的内容,将集群节点杀死,并将重新建立集群,然后重启了电脑,RDM就能连接了。

总结:

redis集群搭建过程中,保证与本文redis版本和centos版本一直的情况下,按照上述集群搭建步骤顺序,基本不会出现大问题,本文也保留了所有搭建过程中遇到的问题以及解决方案,希望可以帮你快速的搭建生产环境下的redis3主3从集群。

Redis5.0.x集群搭建相关推荐

  1. csrediscore访问redis集群_搭建文档 | centos7.6环境下redis5.0.8集群搭建

    " 本文作者:墨篱弦 " 一.做基础配置 a) 首先创建3个空文件 mkdir -p /server/redis_cluster/7001/datamkdir -p /server ...

  2. Redis5.0.8集群搭建与说明

    文章目录 1. 环境说明 2. 修改集群配置 3. 创建集群 4. 集群槽位 5. 主节点故障问题 1. 环境说明 RedisCluster要求至少3个主节点,因此我们需要启动6个Redis实例(3主 ...

  3. redis-5.0.4集群部署

    redis-5.0.4 集群搭建 redis-cluster介绍 ​ 1:redis是一个开源的key value存储系统,受到了广大互联网公司的青睐. ​ 2:redis集群采用P2P模式,是完全去 ...

  4. Redis-5.0.5集群配置

    Redis-5.0.5集群配置 版本:redis-5.0.5 参考:http://redis.io/topics/cluster-tutorial. 集群部署交互式命令行工具:https://gith ...

  5. 手动搭建高可用的Redis5.0分片集群,从理论到实践,超详细

    前言 前一篇 高可用的Redis主从复制集群,从理论到实践 发布后,反响非常热烈.所以今天继续深入讲解redis集群的搭建和相关理论. 好吧,其实是因为上篇搭建的主从复制集群,还有一个实际问题不能解决 ...

  6. Redis 3.0.2集群搭建以及相关问题汇总

    Redis3 正式支持了 cluster,是为了解决构建redis集群时的诸多不便 (1)像操作单个redis一样操作key,不用操心key在哪个节点上 (2)在线动态添加.删除redis节点,不用停 ...

  7. elasticsearch7.0.1集群搭建(最后有ES6.7的配置)

    ** ES集群搭建 **: 说明:首先要讨论搭建几个集群,集群搭建很简单,只需要配置做好就ok; 一 : 在搭建集群之前,我们首先要了解一个es中的相关内容 cluster : 代表一个集群,集群中有 ...

  8. Nacos2.0.3集群搭建

    集群搭建 前置条件 JDK 1.8 MySQL 5.7.29 Nacos 2.0.3 搭建过程 将Nacos安装包上传至三个服务器,本次搭建使用三个端口来模拟三个不同的主机 解压: tar -zvxf ...

  9. spark3.0 分布式集群搭建

    Spark 集群环境搭建-exsi 1.虚拟机环境配置 进入管理界面 创建虚拟机 后续选择存储空间位置 3处选择存储目录中的 centos7,安装过程略 如法炮制建立三个虚拟机 ssh连接 此处使用的 ...

最新文章

  1. 单片机原理,单片机能做什么?
  2. git 版本控制系统初学
  3. linux问题排查常用命令详解
  4. Success Rate CodeForces - 807C (数学+二分)
  5. 1-4 无监督学习(Unsupervised Learning)
  6. css怎么实现加载的圆圈_图像高清方案——响应式图像让图像加载又快又省
  7. python画折线图两种写法
  8. java线程生命周期
  9. Matlab如何平移图形(Figure)中的曲线
  10. 1KB文件夹快捷方式病毒解决方法
  11. 上微信怎么同时用计算机,怎么在电脑上同时登陆两个微信
  12. 初三毕业班主任压力过大割喉自尽
  13. 快速开发分享功能,一键分享到微博、微信等平台。
  14. ZBrush中常用3D笔触效果
  15. GC8837 DFN8 12V直流电机驱动芯片 完美替代TI DRV8837
  16. linux 内核源码下载网址
  17. JAVA出现x可以在Point中访问private是什么意思 高手进
  18. How to speed my too-slow ssh login?
  19. 鼠标右键,以管理员身份在当前目录打开命令行窗口
  20. 数蚁的校园云存储优势 云资源管理平台 数蚁科技

热门文章

  1. 邀请返现php怎么实现_PHP实现财务审核通过后返现金额到客户的功能
  2. python传递指针_python值传递和指针传递
  3. 基于C++的云安全主动防御系统客户端服务端设计
  4. 最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture)
  5. #define XXX do{ XXX } while(0) 为什么使用
  6. Centos7.5- Linux网络管理技术
  7. java中date获取前一天和后一天
  8. Python高级培训第一次作业(寒假)
  9. The X New Developer’s Guide——第一章 基本概念
  10. Maven之聚合与继承