ubuntu 安装 redis集群

Wesley13
• 阅读 574

计划部署三个虚拟机 三个master节点 三个slave节点:

IP:192.168.26.133   port:7133(master)   port:8133(slave)

IP:192.168.26.134   port:7134(master)   port:8134(slave)

IP:192.168.26.135 port:7135(master)   port:8135(slave)

统一安装目录: /home/develop/redis

安装需要的包 gcc tcl

sudo apt-get install gcc

sudo apt-get install tcl

创建目录 redis-master redis-slave

mkdir redis-master

mkdir redis-slave

下载redis-3.0.3

wget http://download.redis.io/releases/redis-3.0.3.tar.gz

tar -zxvf redis-3.0.3.tar.gz

192.168.26.133:

mkdir -p /home/develop/redis/cluster/7133

mkdir -p /home/develop/redis/cluster/8133

192.168.26.134:

mkdir -p /home/develop/redis/cluster/7134

mkdir -p /home/develop/redis/cluster/8134

192.168.26.135:

mkdir -p /home/develop/redis/cluster/7135

mkdir -p /home/develop/redis/cluster/8135

cd redis-3.0.3/

三个虚拟机分别执行:
make PREFIX=/home/develop/redis/redis-master install

make PREFIX=/home/develop/redis/redis-slave install

192.168.26.133:

cp redis-3.0.3/redis.conf cluster/7133/redis-7133.conf
cp redis-3.0.3/redis.conf cluster/8133/redis-8133.conf

192.168.26.134:

cp redis-3.0.3/redis.conf cluster/7134/redis-7134.conf
cp redis-3.0.3/redis.conf cluster/8134/redis-8134.conf

192.168.26.135:

cp redis-3.0.3/redis.conf cluster/7135/redis-7135.conf
cp redis-3.0.3/redis.conf cluster/8135/redis-8135.conf

修改redis-xxxx.conf配置文件

demonize                        yes 是否作为守护进程运行

pidfile                            /var/run/redis-7133.pid        其他相应修改为各自端口的

port                               7133 监听端口,默认为 6379。 其他节点相应修改为各自端口 8133 7134 8134 7135 8135

cluster-enabled               yes                                      打开集群

cluster-config-flie           /home/develop/redis/cluster/7133/nodes.conf 集群配置文件(启动自动生成),不用人为干涉

cluster-node-timeout      15000                                   节点互连超时时间,毫秒

cluster-migration-bareier 1                                         数据迁移的副本临界数,这个参数表示的是,一个主节 点在拥有多少个好的从节点的时候就要割让一个从节 点出来给另一个没有任何从节点的主节点。

cluster-require-full-coverage   yes 如果某一些 key space 没有被集群中任何节点覆盖,集 群将停止接受写入。

appendonly                    yes                                        启用 aof 持久化方式,因为 redis 本身同步数据文件是按上面 save 条件来同 步的,所以有的数据会在一段时间内只存在于内存中。 默认值为 no

dir                                 /home/develop/redis/cluster/7133   节点数据持久化存放目录,7133相应修改

192.168.26.133:

redis-master/bin/redis-server cluster/7133/redis-7133.conf

redis-slave/bin/redis-server cluster/8133/redis-8133.conf

192.168.26.134:

redis-master/bin/redis-server cluster/7134/redis-7134.conf

redis-slave/bin/redis-server cluster/8134/redis-8134.conf

192.168.26.135:

redis-master/bin/redis-server cluster/7135/redis-7135.conf

redis-slave/bin/redis-server cluster/8135/redis-8135.conf

ps -ef | grep redis

查看redis实例启动情况

安装ruby rubygems

sudo apt-get install ruby

cd ..

wget http://production.cf.rubygems.org/rubygems/rubygems-2.0.3.tgz
tar -zxvf rubygems-2.0.3.tgz
cd rubygems-2.0.3/
sudo ruby setup.rb
sudo gem install redis

执行 Redis 集群创建命令(只需要在其中一个节点上执行一次则可)

cd /home/develop/redis/redis-3.0.3/src/

cp redis-trib.rb /home/develop/redis/redis-master/bin/redis-trib

cd /home/develop/redis/redis-master/bin/

redis-trib create --replicas 1 192.168.26.133:7133 92.168.26.134:7134 192.168.26.135:7135 192.168.26.133:8133 192.168.26.134:8134 192.168.26.135:8135

中间输入  yes

正常情况提示 All 16384 slots covered.说明集群中的 16384 个槽都有至少一个主节点在处理, 集群运作正常。

集群创建过程说明:
(1) 给定 redis-trib 程序的命令是 create , 这表示我们希望创建一个新的集群;
(2) 这里的 --replicas 1 表示每个主节点下有一个从节点;
(3) 之后跟着的其它参数则是实例的地址列表,程序使用这些地址所指示的实例来创建新集群; 总的来说,以上命令的意思就是让 redis-trib 程序创建一个包含三个主节点和三个从节点的集群。 接着,redis-trib 会打印出一份预想中的配置给你看,如果你觉得没问题的话(注意核对主从关系是否是 你想要的),就可以输入 yes , redis-trib 就会将这份配置应用到集群当中 

集群简单测试

./redis-cli -h 192.168.26.133 -p 7133

127.0.0.1:7113>set name zhangsan

-> Redirected to slot [8559] located at 192.168.26.134:7134 OK 

./redis-cli -h 192.168.26.133 -p 8133

127.0.0.1:8113>get name

-> Redirected to slot [8559] located at 192.168.26.134:7134 "zhangsan"

./redis-cli -h 192.168.26.133 -p 7133 cluster nodes

系统列出三个master 三个slave 节点。

OK,配置成功。

参考文档
Redis 官方集群指南:http://redis.io/topics/cluster-tutorial
Redis 官方集群规范:http://redis.io/topics/cluster-spec
Redis 集群指南(中文翻译,紧供参考):http://redisdoc.com/topic/cluster-tutorial.html 

Redis 集群规范(中文翻译,紧供参考): http://redisdoc.com/topic/cluster-spec.html 

其它供参考资料
Redis 3.0 集群搭建测试(一):http://blog.csdn.net/zhu\_tianwei/article/details/44928779 

Redis 3.0 集群搭建测试(二):http://blog.csdn.net/zhu\_tianwei/article/details/45009647 

Redis 集群要点:http://5i.io/redis-3-0-cluster-configuration/

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Stella981 Stella981
2年前
Centos7.6部署redis6.0.8集群(redis cluster模式)
集群规划:三台服务器各部署一个主节点、一个从节点,同一台服务器上不是直接主从关系。服务器角色ip:端口node1master1/slave2192.168.146.199:6379/192.168.146.199:6380node2master2/slave3192.168.146.200:6379/192.168.1
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这