需要三台虚拟机(生产环境是3个物理机),分配静态IP。cluster中共6个节点。3主3从。本文中每个虚拟机上的redis端口:6379 6380。

需要注意的两点:

3个主节点分别位于3台虚拟机上,已保证某个虚拟机挂掉,集群仍然可以正常工作。

同一对主从节点(存储的是相同的数据),也不能分配到一台虚拟机上,防止某台虚拟机挂掉,应用无法访问这对redis存储的数据。

redis源码tar包路径: /usr/local/redis-3.0.6.tar.gz

redis解压后源码安装包路径: /usr/local/redis-3.0.6

redis安装位置: /usr/local/redis

redis的启动配置文件放在路径: /etc/redis 文件夹下

redis集群配置配置文件(自动生成)放在路径 /etc/redis/clusterconf 文件夹下

redis数据放在路径: /data/redis 文件夹下

redis日志放在路径: /logs/redis 文件夹下

1、安装依赖

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz

sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/

cd /usr/local/tcl8.6.1/unix/

sudo ./configure

sudo make

sudo make install

2、安装Redis

解压展开源码包

# tar xf redis-3.0.6.tar.gz

进入解压后的源码目录

# cd redis-3.0.6

编译安装 redis

# make PREFIX=/usr/local/redis install

安装完成,进行安装是否成功的测试

# make test

如果显示“All tests passed without errors!”表示安装成功。 如果安装测试提示失败,请重新解压覆盖。 说明: 根据操作系统环境不同,依赖的软件也不同,编译安装 Redis 时如果有提示软件依赖问题,根据错误提示安装相应软件即可。

说明:3个虚拟机上相同操作

3、配置Redis

建立目录如下,存放redis启动配置文件(可以放多个,例如redis-6379.conf,redis-6380.conf)

# mkdir /etc/redis

建立目录如下,存放redis集群节点配置文件,启动时自动生成。

# mkdir /etc/redis/clusterconf

建立目录如下,存放持久化文件(例如dump-6379.rdb,dump-6380.rdb)

# mkdir /usr/local/redis/data

拷贝2 步中 redis 解压目录里的配置文件 redis.conf

# cp redis.conf /etc/redis/redis-6379.conf

编辑/etc/redis/redis-6379.conf,以下配置的具体内容均为示例,需要根据注释进行实际配置。

# vim /etc/redis/redis-6379.conf

daemonize yes // 以守护进程方式运行

redis pidfile /var/run/redis-6379.pid // pid 文件位置

port 6379 //redis 服务监听端口号

logfile "/logs/redis/6379.log" //redis 日志文件

dbfilename dump-6379.rdb

dir /data/redis

save 900 1 //900 秒内有一次更新,则写入磁盘操作

save 300 10 //300 秒内有 10 次操作,则刷一次磁盘

save 60 30 //60 秒 内有 30 次操作的,则刷一次磁盘

appendonly no

appendfilename "appendonly-6379.aof"

#以下是集群相关配置

cluster-enabled yes

cluster-config-file /etc/redis/clusterconf/nodes-<ip>-6379.conf

cluster-node-timeout 5000

创建redis-6380.conf配置文件

# cp /etc/redis/redis-6379.conf /etc/redis/redis-6380.conf

把redis-6380.conf配置文件中的所有6379修改成6380

说明:3个虚拟机上相同操作

4、集群依赖

3台虚拟机上任选一台安装ruby

yum install ruby rubygems -y

gem install redis

说明:目前yum安装的ruby版本是2.0.0,在执行gem install redis时,会报错:

ERROR: Error installing redis

redis requires Ruby version >= 2.2.2.

解决方法访问下面链接

https://www.cnblogs.com/PatrickLiu/p/8454579.html

5、制作sh脚本,启动6个redis

#!/bin/sh

cd /usr/local/redis/bin

./redis-server /etc/redis/redis-6379.conf

echo "redis 6379 is starting"

./redis-server /etc/redis/redis-6380.conf

echo "redis 6380 is starting"

6、制作sh脚本,在安装ruby的虚拟机上执行

#!/bin/sh

/usr/local/redis-3.0.6/src

./redis-trib.rb create --replicas 1 192.168.233.103:6379 192.168.233.104:6379 192.168.233.105:6379 192.168.233.103:6380 192.168.233.104:6380 192.168.233.105:6380(这行的顺序不要变,前三个是master,后三个是slave)

7、通过命令可以查询 cluster info cluster nodes

8、思考

两个master不能在一台机器上

一对主从(数据相同)不能在一台机器上
---------------------
作者:ljquansky
来源:CSDN
原文:https://blog.csdn.net/ljquansky/article/details/84260558
版权声明:本文为博主原创文章,转载请附上博文链接!

【转】redis-cluster安装配置的更多相关文章

  1. redis cluster 安装配置

    实验环境: 三主三从,从负责备份. 192.168.2.201 6381 192.168.2.201 6382 192.168.2.202 6381 192.168.2.202 6382 192.16 ...

  2. redis的安装配置

    主要讲下redis的安装配置,以及以服务的方式启动redis 1.下载最新版本的redis-3.0.7  到http://redis.io/download中下载最新版的redis-3.0.7 下载后 ...

  3. 浅谈Redis及其安装配置

    一.Redis的介绍 二.Redis的安装配置 三.Redis的配置文件说明 四.Redis的简单操作 简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型. ...

  4. redis cluster安装部署(测试环境)

    redis 应用于web前端,做缓存和数据存取的速度是挺可观的,最近看了一些资料,手痒了,就弄了一个测试环境,两台方案,试用一下. ##Redis 集群部署## 一,方案调研: 参考博客: http: ...

  5. Laravel 5.1中 Redis 的安装配置及基本使用教程

    关于Redis的介绍我们在之前Laravel 缓存配置一节中已有提及,Redis是一个开源的.基于内存的数据结构存储器,可以被用作数据库.缓存和消息代理.相较Memcached而言,支持更加丰富的数据 ...

  6. Redis的安装配置及简单集群部署

    最近针对中铁一局项目,跟事业部讨论之后需要我们的KF平台能够接入一些开源的数据库,于是这两天研究了一下Redis的原理. 1. Redis的数据存储原理及简述 1.1Redis简述 Redis是一个基 ...

  7. mysql cluster 安装配置方案

    mysql cluster (mysql 集群)安装配置方案   一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以 ...

  8. Linux下Redis的安装配置

    环境: centos7  PHP7 1.切到准备安装的目录 cd /usr/local 2.下载Redis wget http://download.redis.io/redis-stable.tar ...

  9. Linux系统下Redis缓存安装配置

    Redis是一个高性能的key-value数据库,现时越来越多企业与应用使用Redis作为缓存服务器.楼主是一枚JAVA后端程序员,也算是半个运维工程师了.在Linux服务器上搭建Redis,怎么可以 ...

  10. Centos7:Redis的安装,配置及使用

    安装依赖与环境 yum install gcc-c++ 解压缩redis 编译,进入redis源码目录 make 安装 make install PREFIX=/usr/local/redis 注:P ...

随机推荐

  1. C# -- 内插字符串的使用

    C# -- 内插字符串的使用 (1) 字符串文本以 $ 字符开头,后接左双引号字符. $ 符号和引号字符之间不能有空格.(2) 内插字符串表达式的结果可以是任何数据类型.(3) 可通过在内插表达式后接 ...

  2. C# -- 抽象类与抽象方法

    C#: 抽象类与抽象方法 1.代码 class Program { static void Main(string[] args) { ; i < ; i++) { == ) { Storage ...

  3. centos 6.9修改系统默认字符集

    [root@ckh ~]# locale –a #列出系统所支持的所有字符集 aa_DJ aa_DJ.iso88591 aa_DJ.utf8 aa_ER aa_ER@saaho aa_ER.utf8 ...

  4. 【angularJs】阻止默认事件

    $scope.click = function($event){ $event.stopPropagation();//在函数体内加上这句代码就好} 作者:smile.轉角 QQ:493177502 ...

  5. robotframework中的try exception。断言失败后,后面语句能继续执行

    1.在robot中,断言有时会失败,但不想影响后面语句的执行,这时候要用到 Run Keyword And Continue On Failure

  6. 淡旺季机票的价格问题(switch语句与if-else语句嵌套)

    项目背景 淡旺季机票的价格,原价机票价格为5000元, 淡季头等舱打5折,经济舱打4折 旺季头等舱打9折,经济舱打8折 要求 编写程序实现: 输入任意的月份与舱位来计算机票的价格 1代表头等舱,2代表 ...

  7. Vue文件中引入img 路径写法

    把图片路径写在data里面,然后渲染模板的两种方式 方案1.在data使用require将图片进入,写法如下 logo: require('../asset/admin/logo.png')  在模板 ...

  8. 重构JS代码 - 让JS代码平面化

    js中的嵌套函数用的很多,很牛叉,那为何要平面化? 易懂(自己及他人) 易修改(自己及他人) 平时Ajax调用写法(基于jQuery) $.post('url', jsonObj, function ...

  9. 开源Dapper的Lambda扩展-Sikiro.Dapper.Extension V2.0

    前言 去年我在业余时间,自己整了一套dapper的lambda表达式的封装,原本是作为了一个个人的娱乐项目,当时也只支持了Sql Server数据库.随之开源后,有不少朋友也对此做了试用,也对我这个项 ...

  10. .NetCore 资料分享

    .NetCore3.0 你还不打算入手么? 这次主要是推荐一些自己学习中遇到的一些好的资料和自己的看法( 我推荐的都是我看过的 Asp.Net Core 不做介绍了,直接分享资料了 资料: .NetC ...