参考文章

https://blog.csdn.net/yyTomson/article/details/85783753

https://www.cnblogs.com/zy-303/p/10273167.html

1,环境两台centos7主机IP地址为:172.16.103.12和172.16.103.13

2,上传软件包到/root/software下,编译安装两台主机上的redis软件。

cd root/software/

tar -zxvf redis-5.0.3.tar.gz

安装编译依赖的gcc包

yum -y install gcc

编译安装

cd redis-5.0.3

make && make install

3,将 redis-trib.rb 复制到 /usr/local/bin 目录下

cd src/

cp redis-trib.rb /usr/local/bin/

4,在两个节点上都创建redis_cluster目录,并且在该目录下创建7000,7001,7002目录

mkdir -p /redis_cluster

cd /redis_cluster/

mkdir 7000 7001 7002

5,拷贝redis.conf文件到两个节点上的7000,7001,7002目录下

cp /root/software/redis-5.0.3/redis.conf /redis_cluster/7000

cp /root/software/redis-5.0.3/redis.conf /redis_cluster/7001

cp /root/software/redis-5.0.3/redis.conf /redis_cluster/7002

6,编辑7000/1/2目录下的redis.conf配置文件,主要修改一下几项

port 7000 //端口7000,7002,7003

bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群

daemonize yes //redis后台运行

pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001,7002

cluster-enabled yes //开启集群 把注释#去掉

cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002

cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置

appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志

#requirepass password123        //该项是设置密码,也可以设置,也可以不设置,此处不设置密码,查阅官方文档,未找到设置密码之后创建集群的命令格式

以上操作均在两个节点都执行和修改

7,启动各节点上的redis服务

172.16.103.12上执行

redis-server /redis_cluster/7000/redis.conf

redis-server /redis_cluster/7001/redis.conf

redis-server /redis_cluster/7002/redis.conf

172.16.103.13上执行

redis-server /redis_cluster/7000/redis.conf

redis-server /redis_cluster/7001/redis.conf

redis-server /redis_cluster/7002/redis.conf

8,可以使用netstat 命令检查redis的开启情况,使用的端口是7000,7001和7002,下面创建集群

在172.16.103.12上执行

redis-cli --cluster create --cluster-replicas 1 172.16.103.12:7000 172.16.103.12:7001 172.16.103.12:7002 172.16.103.13:7000 172.16.103.13:7001 172.16.103.13:7002

集群创建成功

8,登陆验证

登陆创建一个键值

登陆其他节点,get键值

9,集群的关闭,以及集群的自动启动

关闭集群的脚本,需要在两个节点都执行

#脚本开始

#!/bin/bash

redis-cli -h 172.16.103.12 -p 7000 shutdown

redis-cli -h 172.16.103.12 -p 7001 shutdown

redis-cli -h 172.16.103.12 -p 7002 shutdown

#脚本结束

#脚本开始

#!/bin/bash

redis-cli -h 172.16.103.13 -p 7000 shutdown

redis-cli -h 172.16.103.13 -p 7001 shutdown

redis-cli -h 172.16.103.13 -p 7002 shutdown

#脚本结束

开机启动的脚本

#脚本开始

#!/bin/bash

redis-server /redis_cluster/7000/redis.conf &> /dev/null

redis-server /redis_cluster/7001/redis.conf &> /dev/null

redis-server /redis_cluster/7002/redis.conf &> /dev/null

if [ $? -eq 0 ]

then

redis-cli --cluster create --cluster-replicas 1 172.16.103.12:7000 172.16.103.12:7001 172.16.103.12:7002 172.16.103.13:7000 172.16.103.13:7001 172.16.103.13:7002 &> /root/software/redis-cluster-start.log

else

echo "Redis Services Started Succeed! Please Check Node!"

fi

cat /root/software/redis-cluster-start.log | grep "All 16384 slots covered"

if [ $? -eq 0 ]

then

echo "Redis Cluster Started Succeed!"

else

echo "Redis Cluster Started Failed! Please check /root/software/redis-cluster-start.log"

fi

#脚本结束

这个启动脚本运行过程中需要用户输入yes,这个用户输入的功能不知道怎么添加到脚本中。请大神指点。

10,相关报错:

如图所示报错:[ERR] Node 172.16.103.12:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

解决该报错的方法为停止所有节点的redis服务,使用命令为;

redis-cli -h 172.16.103.13 -p 7000 shutdown //Ip地址端口根据实际修改

删除所有节点上的/root/software(redis软件包所在的位置)下的nodes_*.conf文件和dump.rdb和appendonly.aof文件,删除所有节点上/redis_cluster(创建的集群目录)中的nodes_*.conf文件和dump.rdb和appendonly.aof文件,然后再重新创建集群,初步接触redis,不确定删除以上文件是否会造成数据丢失,但是redis本身作为缓存数据库,即为缓存,应该多数都不重要吧。

Redis 5.0.3集群部署的更多相关文章

  1. redis 3.0的集群部署

    转载请注明出处:http://hot66hot.iteye.com/admin/blogs/2050676 最近研究redis-cluster,正好搭建了一个环境,遇到了很多坑,系统的总结下,等到re ...

  2. (转)redis 3.0的集群部署

    一:关于redis cluster 1:redis cluster的现状 reids-cluster计划在redis3.0中推出,可以看作者antirez的声明:http://antirez.com/ ...

  3. Redis 中常见的集群部署方案

    Redis 的高可用集群 前言 几种常用的集群方案 主从集群模式 全量同步 增量同步 哨兵机制 什么是哨兵机制 如何保证选主的准确性 如何选主 选举主节点的规则 哨兵进行主节点切换 切片集群 Redi ...

  4. Redis 3.0 Cluster集群配置

    Redis 3.0 Cluster集群配置 安装环境依赖 安装gcc:yum install gcc 安装zlib:yum install zib 安装ruby:yum install ruby 安装 ...

  5. Redis 5.0.5集群搭建

    Redis 5.0.5集群搭建 一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2):s ...

  6. hbase-2.0.4集群部署

    hbase-2.0.4集群部署 1. 集群节点规划: rzx1 HMaster,HRegionServer rzx2 HRegionServer rzx3 HRegionServer 前提:搭建好ha ...

  7. 配置redis 4.0.11 集群

    配置redis 4.0.11 集群 准备redis 软件和redis配置文件 启动Redis服务 /data/soft/redis/src/redis-check-aof --fix /log/red ...

  8. redis3.0.5集群部署安装详细步骤

    Redis集群部署文档(centos6系统) (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) ...

  9. 1--redis3.0.5集群部署安装详细步骤

    Redis集群部署文档(centos6系统) (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) ...

随机推荐

  1. django遇到的问题-系列1

    django开发中遇到的问题以及解决方法: 1.You called this URL via POST, but the URL doesn't end in a slash and you hav ...

  2. CentOS系统Nginx安装配置,随时更新

    ./configure --prefix=/etc/nginx \ #指定安装目录 --sbin-path=/usr/sbin/nginx \ #指定执行路径--conf-path=/etc/ngin ...

  3. java版数据结构与算法 (1综述)

    很大部分转载自 https://blog.csdn.net/singit/article/details/54898316 数据的逻辑结构:反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系指数据元 ...

  4. 安装openssh

    在推进ansible用于配置管理与自动部署,其中一个很困扰的问题是创建ssh通道很慢,虽然ansible在同一个task里面是并行的控制多台受控端.但是每一个task都需要和受控端创建ssh通道,非常 ...

  5. Open Daylight integration with OpenStack: a tutorial

    Open Daylight integration with OpenStack: a tutorial How to deploy OpenDaylight and integrate it wit ...

  6. the shortest path algorithm

    Dijkstra算法 又称迪杰斯特拉算法,是一个经典的最短路径算法,主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止,使用了广度优先搜索解决赋权有向图的单源最短路径问题,算法最终得到一个最短路 ...

  7. CentOS 7 下使用yum安装MySQL5.7.20 最简单图文详解

    CentOS7默认数据库是mariadb, 但是 好多用的都是mysql ,但是CentOS7的yum源中默认好像是没有mysql的. 上一篇安装的是5.6的但是我想安装5.7的  yum安装是最简单 ...

  8. Charles Map Local 中文显示乱码问题

    最近在迁移客户端的业务,用React Native实现,在用本地数据测试Android的时候,遇到到中文乱码的问题.是因为编码问题. 一.首先看看文件编码是否是UTF-8,我的电脑是安装了Sublim ...

  9. Hadoop_CDH安装

    ——本文非个人原创,为大牛同事整理,发布于此以备忘 1     CDH5.8安装(2018年4月19日) 1.1   物理服务器注意事项 (1)把raid都去掉了,每个物理盘都用raid0创建一个虚拟 ...

  10. Python全栈之路----常用模块----序列化(json&pickle&shelve)模块详解

    把内存数据转成字符,叫序列化:把字符转成内存数据类型,叫反序列化. Json模块 Json模块提供了四个功能:序列化:dumps.dump:反序列化:loads.load. import json d ...