redis集群搭建
1. 环境
CentOS: CentOS release 6.5 (Final)
Redis: redis-4.0.14
2. 服务器规划
|IP|服务器配置|主从配置|备注|
3. redis安装
(1) 检查依赖环境(Redis是C语言开发,编译依赖gcc环境)
查看gcc是否按照
[root@i-tmzabnvr /]# gcc -v
安装gcc
[root@i-tmzabnvr /]# sudo yum install -y gcc
(2) 将安装redis-4.0.14.tar.gz
包复制到/usr/local/nlp
目录,并解压。
下载
[root@i-tmzabnvr redis]# wget http://download.redis.io/releases/redis-4.0.14.tar.gz
解压
[root@i-tmzabnvr redis]# tar -zxvf redis-4.0.14.tar.gz
(3) 编译文件
编译
[root@i-tmzabnvr redis-4.0.14]# make
出现Hint: It's a good idea to run 'make test' ;)
则编译成功。
(4) 安装
安装
[root@i-tmzabnvr redis-4.0.14]# make PREFIX=/data/software/redis/redis-main install
创建命令软链接
[root@i-tmzabnvr redis-4.0.14]# ln -sv /data/software/redis/redis-main/bin/redis-* /usr/sbin/
4. 集群配置
Redis 最小集群规划,需要包含至少三个主节点,此处测试部署具有三个主服务器和三个从服务器的六节点群集。计划是在一台机器上模拟一个集群,节点端口8100,8101,8102,8103,8104,8105
(1) 创建节点目录
创建一个新目录以及redis实例已端口号命名的以下目录:
[root@i-tmzabnvr redis-cluster]# mkdir /data/software/redis/redis-cluster/nodes-8100
[root@i-tmzabnvr redis-cluster]# mkdir /data/software/redis/redis-cluster/nodes-8101
[root@i-tmzabnvr redis-cluster]# mkdir /data/software/redis/redis-cluster/nodes-8102
[root@i-tmzabnvr redis-cluster]# mkdir /data/software/redis/redis-cluster/nodes-8103
[root@i-tmzabnvr redis-cluster]# mkdir /data/software/redis/redis-cluster/nodes-8104
[root@i-tmzabnvr redis-cluster]# mkdir /data/software/redis/redis-cluster/nodes-8105
(2) 创建配置文件
在每个节点目录中创建一个文件redis.conf。
[root@i-tmzabnvr redis-cluster]# cp redis.conf redis-cluster/nodes-8100
[root@i-tmzabnvr redis-cluster]# cp redis.conf redis-cluster/nodes-8101
[root@i-tmzabnvr redis-cluster]# cp redis.conf redis-cluster/nodes-8102
[root@i-tmzabnvr redis-cluster]# cp redis.conf redis-cluster/nodes-8103
[root@i-tmzabnvr redis-cluster]# cp redis.conf redis-cluster/nodes-8104
[root@i-tmzabnvr redis-cluster]# cp redis.conf redis-cluster/nodes-8105
*(3) 进入节点修改配置文件 *
详细配置见附件redis-8100.conf
[root@i-tmzabnvr redis-cluster]# vi nodes-8100/redis-8100.conf
[root@i-tmzabnvr redis-cluster]# vi nodes-8100/redis-8101.conf
[root@i-tmzabnvr redis-cluster]# vi nodes-8100/redis-8102.conf
[root@i-tmzabnvr redis-cluster]# vi nodes-8100/redis-8103.conf
[root@i-tmzabnvr redis-cluster]# vi nodes-8100/redis-8104.conf
[root@i-tmzabnvr redis-cluster]# vi nodes-8100/redis-8105.conf
(4) 配置redis开机自动启动
详细配置见附件redis-8100.txt
[root@i-tmzabnvr /]# vi /etc/init.d/redis-8100
[root@i-tmzabnvr /]# vi /etc/init.d/redis-8101
[root@i-tmzabnvr /]# vi /etc/init.d/redis-8102
[root@i-tmzabnvr /]# vi /etc/init.d/redis-8103
[root@i-tmzabnvr /]# vi /etc/init.d/redis-8104
[root@i-tmzabnvr /]# vi /etc/init.d/redis-8105
配置可执行权限
[root@i-tmzabnvr /]# chmod 764 /etc/init.d/redis-8100
[root@i-tmzabnvr /]# chmod 764 /etc/init.d/redis-8101
[root@i-tmzabnvr /]# chmod 764 /etc/init.d/redis-8102
[root@i-tmzabnvr /]# chmod 764 /etc/init.d/redis-8103
[root@i-tmzabnvr /]# chmod 764 /etc/init.d/redis-8104
[root@i-tmzabnvr /]# chmod 764 /etc/init.d/redis-8105
注册系统服务
[root@i-tmzabnvr /]# chkconfig –add redis-8100
[root@i-tmzabnvr /]# chkconfig –add redis-8101
[root@i-tmzabnvr /]# chkconfig –add redis-8102
[root@i-tmzabnvr /]# chkconfig –add redis-8103
[root@i-tmzabnvr /]# chkconfig –add redis-8104
[root@i-tmzabnvr /]# chkconfig –add redis-8105
(5) 启动redis-cluster
启动集群
[root@i-tmzabnvr redis-cluster]# service redis-8100 start && service redis-8101 start && service redis-8102 start && service redis-8103 start && service redis-8104 start && service redis-8105 start
停止集群
[root@i-tmzabnvr redis-cluster]# service redis-8100 stop && service redis-8101 stop && service redis-8102 stop && service redis-8103 stop && service redis-8104 stop && service redis-8105 stop
5. 创建集群
- 创建集群
./redis-trib.rb create –replicas 1 223.202.199.63:8100 223.202.199.63:8101 223.202.199.63:8102 223.202.199.63:8103 223.202.199.63:8104 223.202.199.63:8105
- 使某个节点崩溃
[root@i-tmzabnvr redis-cluster]# ./redis-trib.rb check 223.202.199.63:8100
- 查看集群状态
./redis-trib.rb check 10.168.14.46:8100
- 添加新节点为主服
./redis-trib.rb add-node 10.168.14.49:8400 10.168.14.49:8401
6. 常用命令
# 1. 登录redis客户端
redis-cli -h host -p port -a password -c
# 2. 查看redis的master节点
./redis-cli -h 10.168.14.46 -p 8100 cluster nodes | grep master
# 3. 使某个节点崩溃
./redis-cli -h 10.168.14.48 -p 8300 debug segfault
# 4. 查看集群状态
./redis-trib.rb check 10.168.14.46:8100
# 5. 添加新节点为主服
./redis-trib.rb add-node 10.168.14.49:8400 10.168.14.49:8401
7. 安装报错解决
7.2. 创建集群报错
集群数据不为空,Node 10.168.14.46:8100 is not empty
[uaren@yrz-redis01 redis-4.0.14]$ ./src/redis-trib.rb create --replicas 1 10.168.14.46:8100 10.168.14.46:8101 10.168.14.47:8200 10.168.14.47:8201 10.168.14.48:8300 10.168.14.48:8301
[ERR] Node 10.168.14.46:8100 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
清空数据,在将每个节点下aof、rdb、nodes.conf本地备份文件删除 ,重新创建即可成功
[uaren@yrz-redis01 src]# redis-cli -h 10.168.14.46 -p 8100
10.168.14.46:8100> flushdb
OK
8. 安装 RVM
8.1 下载安装命令
curl -L https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable
8.2 生效命令
source /etc/profile.d/rvm.sh && source ~/.rvm/scripts/rvm
8.3 查看版本
rvm -v
9. 安装 gem
9.1 rubygems官网下载源码
wget https://rubygems.org/rubygems/rubygems-2.6.12.zip
9.2 解压文件
unzip unzip rubygems-2.6.12.zip
9.3 安装文件
cd rubygems-2.6.12
sudo ruby setup.rb
9.4 查看版本
gem -v
10. 安装 ruby
10.1 官网下载源码
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.7.tar.gz
10.2 解压文件
tar zxvf ruby-2.5.7.tar.gz
10.3 安装文件
./configure && make && make install
10.4 查看版本
ruby -v
11. 安装 redis-gem
11.1 官网下载源码
wget https://rubygems.org/downloads/redis-4.1.2.gem
11.2 安装文件
gem install -l ./redis-4.1.2.gem
11.3 查看版本
ruby -v