redis集群搭建教程(以3.2.2为例)
redis从3.0版本开始支持集群,2.X版本主支持sentinel主从模式;所以要搭建集群务必下载3.0以上版本,本教程以3.2.2版本为例。
redis集群最少要有3个主节点,最典型的是3主3从组成集群;本教程以在同一台主机(192.168.220.128)搭建3个主节点(master)的集群为例。
1.下载
下载页面:https://redis.io/download
当前最新版本下载:http://download.redis.io/releases/redis-4.0.1.tar.gz
历史版本下载:http://download.redis.io/releases/
2.安装
先创建基本的目录结构
mkdir redis
mkdir redis/adm
mkdir redis/bin-3.2.
ln -s bin-3.2. redis/bin
mkdir redis/data
mkdir redis/conf
mkdir redis/logs
mkdir redis/tmp
解压编译redis
tar -zxf redis-3.2..tar.gz
cd redis-3.2.
make
将redis二进制文件和ruby脚本移动bin目录,将配置文件移到conf目录
cd src
ll |grep x
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server redis-trib.rb ../../redis/bin
cd ..
cp runtest runtest-cluster runtest-sentinel ../redis/bin
cp redis.conf sentinel.conf ../redis/conf/
3.配置和启动redis
创建各端口进程的data目录
cd redis/data
mkdir
mkdir
mkdir
mkdir
mkdir
mkdir
创建各端口进程的配置文件,其中portNum和bind的IP根据自己情况修改
cd ../conf
for portNum in
do
cat > redis-$portNum.conf <<EOF
daemonize yes
pidfile /usr/myapp/redis/tmp/redis-$portNum.pid
dir /usr/myapp/redis/data/$portNum/ loglevel notice
logfile /usr/myapp/redis/logs/redis-$portNum.log
maxclients bind 192.168.220.128
port $portNum protected-mode yes
#requirepass yourpasswd cluster-enabled yes
cluster-config-file nodes-$portNum.conf
cluster-node-timeout
cluster-require-full-coverage no appendonly no
appendfsync everysec
auto-aof-rewrite-percentage
auto-aof-rewrite-min-size 256mb save "" repl-diskless-sync no
repl-diskless-sync-delay
EOF
done
创建集群时上边的bind最好只绑定一个本机网卡的IP地址,127.0.0.1也不要绑,不然在后边使用redis-trib创建集群时会一直停在等待节点加入状态。(不绑127.0.0.1的问题是redis-cli需要用-h指定IP才能登录)
然后启动各server进程
cd ../bin
./redis-server ../conf/redis-.conf
./redis-server ../conf/redis-.conf
./redis-server ../conf/redis-.conf
./redis-server ../conf/redis-.conf
./redis-server ../conf/redis-.conf
./redis-server ../conf/redis-.conf
4.安装ruby
由于redis官方提供的集群组建脚本是ruby写的,所以我们需要安装ruby
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis
对于内网环境可能或是不能连接外网或没有源,需要先在别的机器上离线下载然后上传上去离线安装
yum install --downloaddir=. --downloadonly ruby #下载ruby及其依赖到当前目录,如果还有其他包没下载可模仿下载
yum install --downloaddir=. --downloadonly rubygems #下载gem及其依赖到当前目录
wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.2.gem
yum localinstall ruby -y #进入上传的ruby存放的目录执行
yum localinstall rubygems -y #进入上传的rubygems目录执行
gem install -l ./redis-3.2..gem
yum localinstall有时装不上改用rpm逐个包安装即可;ruby依次安装compat-readline5--ruby-libs--ruby;gem依次安装ruby-irb--ruby-rdoc--rubygems
5.创建集群
cd ../bin
./redis-trib.rb create --replicas 192.168.220.128: 192.168.220.128: 192.168.220.128: 192.168.220.128: 192.168.220.128: 192.168.220.128:
在提示Can I set the above configuration? (type 'yes' to accept):时输入yes接受即可(redis-trib有时会报错权限不足,以root执行即可)
6.查看集群情况
./redis-cli -h 192.168.220.128 -p -c cluster nodes
-c是登录集群使可以自动跳转;如果要确保集群可用,可登录set/get一下
参考:
http://www.cnblogs.com/wuxl360/p/5920330.html
最新文章
- Lattice Codes
- ZAM 3D 制作简单的3D字幕 流程(二)
- 《Python基础教程(第二版)》学习笔记 ->; 第二章 列表和元组
- Java循环语句 for
- Vessels
- 手机游戏产品经理(一)logo的印象非常重要,以促进
- java提高篇(十)-----强制类型转换
- sizeof求类的大小
- 【LCT+主席树】BZOJ3514 Codechef MARCH14 GERALD07加强版
- Linux多线程实践(7) --多线程排序对比
- H5如何解监听页面退出需求???
- java使用ffmpeg实现上传视频的转码,提取视频的截图等功能
- Python脱产8期 Day12 2019/4/26
- CSS 埋点统计
- (8)What makes a good life? Lessons from the longest study on happiness
- spring boot 分布式事务实现(XA方式)
- java基础---->;git的使用(一)
- vue学习七之Axios
- CentOS安装python-2.7+安装pip-10.0.0
- 轻松学,浅析依赖倒置(DIP)、控制反转(IOC)和依赖注入(DI) 依赖注入和控制反转的理解,写的太好了。
热门文章
- VS2010.STL::list的一个bug
- js插件---iCheck是用来做什么的
- (转)winform之ListView
- Spring 拦截器实现+后台原理(HandlerInterceptor)
- 利用Anaconda完美解决Python 2与python 3的共存问题
- WCF初见之SQL数据库的增删改查
- 【异常及源码分析】org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping
- 【源码分析】Mybatis使用中,同一个事物里,select查询不出之前insert的数据
- Vue.js示例:文本编辑器。使用_.debounce()反抖动函数
- python全栈开发,Day1(python介绍,变量,if,while)