基于Cluster的Redis集群方案

本文介绍了基于Cluster的Redis集群方案,包括生产部署情况:5主5从,每台6个实例,每个实例8GB内存,总计240GB Redis空间。此外,强调了data bus端口应小于65535 - 10000,cluster bus端口为data bus端口加10000。
摘要由CSDN通过智能技术生成
说明:Linux系统为Centos6.4。要让集群正常工作至少需要3个主节点,在这里需要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下:
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

1:下载redis。官网下载3.0.0版本,之前2.几的版本不支持集群模式
下载地址:https://github.com/antirez/redis/archive/3.0.0-rc2.tar.gz

2:上传服务器,解压,编译
tar -zxvf redis-3.0.6.tar.gz
mv redis-3.0.6.tar.gz redis
cd ~/redis
make
# make install

3:创建集群需要的目录
mkdir -p ~/cluster
cd ~/cluster
mkdir 7000 7001 7002 7003 7004 7005

4:修改配置文件redis.conf
cp ~/redis/redis.conf ~/cluster
vi redis.conf
##修改配置文件中的下面选项,必须在Linux系统里面修改
port 7000
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
##修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到7000/7001/7002/7003/7004/7005目录下面
cp ~/cluster/redis.conf ~/cluster/7000/
cp ~/cluster/redis.conf ~/cluster/7001/
cp ~/cluster/redis.conf ~/cluster/7002/
cp ~/cluster/redis.conf ~/cluster/7003/
cp ~/cluster/redis.conf ~/cluster/7004/
cp ~/cluster/redis.conf ~/cluster/7005/
##注意:拷贝完成之后要修改7001/7002/7003/7004/7005目录下面redis.conf文件中的port参数,分别改为对应的文件夹的名称

5:将~/redis/src/redis-server复制到各个节点目录下
cp ~/redis/src/redis-server ~/cluster/7000/
cp ~/redis/src/redis-server ~/cluster/7001/
cp ~/redis/src/redis-server ~/cluster/7002/
cp ~/redis/src/redis-server ~/cluster/7003/
cp ~/redis/src/redis-server ~/cluster/7004/
cp ~/redis/src/redis-server ~/cluster/7005/

6:分别启动这6个redis实例
cd ~/cluster/7000
redis-server redis.conf
cd ~/cluster/7001
redis-server redis.conf
cd ~/cluster/7002
redis-server redis.conf
cd ~/cluster/7003
redis-server redis.conf
cd ~/cluster/7004
redis-server redis.conf
cd ~/cluster/7005
redis-server redis.conf

~/redis-3.0.6/src/redis-server ~/redis-3.0.6/redis.conf >/dev/null 2>&1 &

##启动之后使用命令查看redis的启动情况ps -ef|grep redis


7:执行redis的创建集群命令创建集群
~/redis-3.0.6/src/redis-trib.rb create --replicas 1 192.168.137.31:6379 192.168.137.32:6379 192.168.137.33:6379 192.168.137.34:6379 192.168.137.35:6379
7.1 执行上面的命令的时候会报错,因为是执行的ruby的脚本,需要ruby的环境
错误内容:/usr/bin/env: ruby: No such file or directory
所以需要安装ruby的环境,这里推荐使用yum install ruby安装
【root用户】yum install ruby
7.2 然后再执行第6步的创建集群命令,还会报错,提示缺少rubygems组件,使用yum安装
错误内容:
./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
from ./redis-trib.rb:24
【root用户】yum install rubygems
7.3 再次执行第6步的命令,还会报错,提示不能加载redis,是因为缺少redis和ruby的接口,使用gem 安装
错误内容:
/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
【root用户】gem install redis
这里可能无法安装,因为无法连接gem服务器:
[@zw_22_90 src]# gem install redis --version 3.0.0
ERROR: Could not find a valid gem 'redis' (= 3.0.0) in any repository
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
需要手工下载并安装:
wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
gem install -l ./redis-3.2.1.gem
7.4 再次执行第6步的命令,正常执行
输入yes,然后配置完成。

至此redis集群即搭建成功!

8:使用redis-cli命令进入集群环境
/apps/svr/redis-3.0.3/bin/redis-cli -c -p 6379

9:一般问题
(error) CLUSTERDOWN The cluster is down
~/redis-3.0.6/src/redis-trib.rb fix 127.0.0.1:6379

10:注意事项:
1)不要使用回环地址127.0.0.1,dns或者hostname避免使用

2)注意data bus端口的分配,应该小于(65535  - 10000),cluster bus 端口默认是 data bus端口 + 10000。


11:生产部署情况:
1)redis cluster,5主5从,每台6个实例,每个实例8G内存,一台机器共使用48G,5台就总共 240G的redis 空间使用。
2)传统redis,一主一从,每台1个实例,每个实例8G内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值