使用redis4.0.1和redis-cluster搭建集群并编写重启shell脚本
1.删除机器上原有的redis2.8
关闭redis-server
killall -9 redis-server
查找redis文件所在目录
which redis
删除相关文件
rm -rf redis
rm -rf redis-proxy/
rm -rf nutcracker/
删除相关命令
rm -f /usr/local/bin/redis-*
2.下载、安装redis
wget http://download.redis.io/releases/redis-4.0.1.tar.gz
tar xzf redis-4.0.1.tar.gz
mv redis-4.0.1 /usr/local/
cd /usr/local/redis-4.0.1/
make
make test
3.配置节点(新建6个以端口号命名的目录,表示6个节点,3主3从)
cd /usr/local
mkdir cluster
cd cluster/
mkdir 7000
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
在上面新建的每个目录下新建redis.conf文件,并写入以下内容:
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
vim 7000/redis.conf
vim 7001/redis.conf
vim 7002/redis.conf
vim 7003/redis.conf
vim 7004/redis.conf
vim 7005/redis.conf
为了方便使用把redis-server文件复制到/usr/local/cluster目录下
cp /usr/local/redis-4.0.1/src/redis-server /usr/local/cluster
进入每个节点的目录,并用对应的配置文件启动redis
cd /usr/local/cluster/7000
../redis-server ./redis.conf &
先测试一下是否启动成功过,
/usr/local/redis-4.0.1/src/redis-cli -p 7000
如果能进去redis命令行表示启动成功,再去启动其他端口
cd /usr/local/cluster/7001
../redis-server ./redis.conf &
cd /usr/local/cluster/7002
../redis-server ./redis.conf &
cd /usr/local/cluster/7003
../redis-server ./redis.conf &
cd /usr/local/cluster/7004
../redis-server ./redis.conf &
cd /usr/local/cluster/7005
../redis-server ./redis.conf &
接下来启动cluster
cd /usr/local/redis-4.0.1/src/
./redis-trib.rb create --replicas 1 172.16.180.226:7000 172.16.180.226:7001 172.16.180.226:7002 172.16.180.227:7003 172.16.180.227:7004 172.16.180.227:7005
4.常见错误及解决方法
如果系统上各种依赖比较齐全的话,这时就能启动成功了,通常还可能遇到以下错误
错误1:
root@localhost src]# ./redis-trib.rb create --replicas 1 172.16.180.226:7000 172.16.180.226:7001 172.16.180.226:7002 172.16.180.227:7003 172.16.180.227:7004 172.16.180.227:7005
/usr/bin/env: ruby: No such file or directory
解决方案:
yum install ruby
错误2:
[root@localhost src]# ./redis-trib.rb create --replicas 1 172.16.180.226:7000 172.16.180.226:7001 172.16.180.226:7002 172.16.180.227:7003 172.16.180.227:7004 172.16.180.227:7005
./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
from ./redis-trib.rb:24
解决方案:
yum install rubygems
错误3:
[root@localhost src]# ./redis-trib.rb creat --replicas 1 172.16.180.226:7000 172.16.180.226:7001 172.16.180.226:7002 172.16.180.227:7003 172.16.180.227:7004 172.16.180.227:7005
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from ./redis-trib.rb:25
解决方案:
gem install redis
yum install ruby
yum install rubygems
gem install redis
安装完以上各种依赖之后,再次执行以下命令即可成功启动cluster
./redis-trib.rb create --replicas 1 172.16.180.226:7000 172.16.180.226:7001 172.16.180.226:7002 172.16.180.227:7003 172.16.180.227:7004 172.16.180.227:7005
5.测试cluster集群是否能正常使用
/usr/local/src/redis-cli -c -h 172.16.180.226 -p 7000
上面的命令如果缺少了“-c”会出现以下错误。
6.编写重启cluster的shell脚本
vim restart-cluster.sh
写入以下内容:
#!/bin/sh
killall -9 redis-server
#删掉以前运行的节点留下的配置信息
find /usr/local/cluster/ -name "appendonly.aof"|xargs rm -f;
find /usr/local/cluster/ -name "nodes.conf"|xargs rm -f;
find /usr/local/cluster/ -name "dump.rdb"|xargs rm -f;
#重新启动redis
cd /usr/local/cluster/7000
../redis-server ./redis.conf &
cd /usr/local/cluster/7001
../redis-server ./redis.conf &
cd /usr/local/cluster/7002
../redis-server ./redis.conf &
cd /usr/local/cluster/7003
../redis-server ./redis.conf &
cd /usr/local/cluster/7004
../redis-server ./redis.conf &
cd /usr/local/cluster/7005
../redis-server ./redis.conf &
cd /usr/local/redis-4.0.1/src/
#重新创建cluster集群
./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
shell文件保存之后需要赋予可执行权限。
chmod +x restart-cluster.sh
使用脚本重启
./restart-cluster.sh
查看是否重启成功
src/redis-cli -c -p 7000
本文参考了以下资料:
http://www.redis.cn/download.html
http://www.redis.cn/topics/cluster-tutorial.html
http://www.oschina.net/question/1259683_2133954
使用redis4.0.1和redis-cluster搭建集群并编写重启shell脚本的更多相关文章
- Redis Cluster(集群)的搭建
一.Redis的下载.安装.启动(单实例) 我们统一将Redis安装在/opt目录下,执行命令如下: $ cd /opt $ wget http://download.redis.io/release ...
- 超详细的 Redis Cluster 官方集群搭建指南
今天从 0 开始搭建 Redis Cluster 官方集群,解决搭建过程中遇到的问题,超详细. 安装ruby环境 因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,rub ...
- redis4.0.13主从、哨兵、集群3种模式的 Server端搭建、启动、验证
本文使用的是redis-4.0.13.tar.gz版本. 两个centos7系统虚拟机:192.168.10.140.192.168.10.150 redis各版本下载地址:http://downlo ...
- Redis Cluster 官方集群搭建指南
安装ruby环境因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,ruby安装需要指定openssl. 安装openssl $ wget https://www.open ...
- Redis Cluster 分布式集群(下)
Redis Cluster 搭建(工具) 环境准备 节点 IP 端口 节点① 172.16.1.121 6379,6380 节点② 172.16.1.122 6379,6380 节点③ 172.16. ...
- Redis Cluster 分布式集群(上)
Redis Cluster 介绍 Redis 集群是一个可以在多个Redis节点之间进行数据共享的设施(installation): Redis 集群不支持那些需要同时处理多个键的 Redis 命令, ...
- redis 模拟搭建集群
一.本文是在一台 linux 系统上,模拟搭建 redis 集群.3 台主机,3 台从机. 二.redis 安装步骤 http://www.cnblogs.com/fangwu/p/8602357.h ...
- Redis Cluster 伪集群的搭建
简介 为何要搭建Redis集群?Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB ...
- Redis(1.13)Redis cluster 分布式集群手动配置
[1]试验环境 结构图如下: (这里试验没有那么多机器,就用3台机器搭建试验) redis1是redis集群的一个节点A,上面运行了两个redis实例,7001 7004 redis2是redis集群 ...
随机推荐
- 【转】到底什么时候应该用MQ
原文地址:http://zhuanlan.51cto.com/art/201704/536407.htm 一.缘起 一切脱离业务的架构设计与新技术引入都是耍流氓. 引入一个技术之前,首先应该解答的问题 ...
- Linux的虚拟内存管理-如何分配和释放内存,以提高服务器在高并发情况下的性能,从而降低了系统的负载
Linux的虚拟内存管理有几个关键概念: Linux 虚拟地址空间如何分布?malloc和free是如何分配和释放内存?如何查看堆内内存的碎片情况?既然堆内内存brk和sbrk不能直接释放,为什么不全 ...
- java写卷积神经网络---CupCnn简介
https://blog.csdn.net/u011913612/article/details/79253450
- 谷歌浏览器network请求时间(stalled,DNS Lookup,Waiting)分析以及解决方案
network工具功能强大,能够让我看到网页加载的信息,比如加载时间,和先后顺序,是否是并行加载,还是堵塞加载. 默认情况下有八列: (1).Name:表示加载的文件名. (2).Method:表示请 ...
- 使用 Vuejs 开发 chrome 插件的注意事项
使用 Vuejs 开发 chrome 插件 chrome 插件的开发其实并不难,web开发者可以使用 html, css, javascript 轻松的开发实用的 chrome 插件. 一个好的 ch ...
- loj#2542. 「PKUWC2018」随机游走(MinMax容斥 期望dp)
题意 题目链接 Sol 考虑直接对询问的集合做MinMax容斥 设\(f[i][sta]\)表示从\(i\)到集合\(sta\)中任意一点的最小期望步数 按照树上高斯消元的套路,我们可以把转移写成\( ...
- <Android 基础(二十五)> View Animation
简介 视图动画,主要包括位移,透明度,旋转和缩放,View本身的属性并没有发生变化,只是在这个视图上添加一些渐变的效果,所以总体而言,视图动画只能实现一些简单的动画效果,属性动画功能更强大. 使用 r ...
- 快速 图片颜色转换迁移 Color Transfer Opencv + Python
Super fast color transfer between images About a month ago, I spent a morning down at the beach, w ...
- Google zxing实现二维码扫描完美解决方案
最近因项目需求,需要在App中集成二维码扫描的功能.网上找了很多资料,最后决定使用Google的zxing来实现.实现的过程遇到了很多的坑,也是因为这些坑在网上没有具体的解决方案,今天就把我的实现过程 ...
- linux客户端打印报表时操作系统的配置
报表打印是用applet方式操作的,所以客户端要有jre环境.如果客户端是windows系统的话,安装jre环境比较方便:如果客户端是linux系统的话,即使服务器端reportConfig.x ...