本教程共用到两台服务器搭建了6个redis实例
服务器1:192.168.1.111
服务器2:192.168.1.123
安装redis3.2
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar -zxvf redis-3.2.8.tar.gz
cd redis-3.2.8
make PREFIX=/usr/local/redis install
cp redis.conf /usr/local/redis/
cp src/redis-trib.rb /usr/local/redis/
在服务器1创建3个redis实例
# 创建集群目录
mkdir -p /usr/local/redis_cluster
cd /usr/local/redis_cluster
#分别创建三个节点 其对应端口 7000 7001 7002
mkdir 7000 7001 7002
#拷贝配置文件到三个目录
cp ~/redis-3.2.8/redis.conf ./redis_cluster/7000/
cp ~/redis-3.2.8/redis.conf ./redis_cluster/7001/
cp ~/redis-3.2.8/redis.conf ./redis_cluster/7002/
分别对7001,7002、7003文件夹中的redis.conf 修改
#绑定本机ip
bind 192.168.1.196 127.0.0.1
#redis后台运行
daemonize yes
pidfile /var/run/redis_7000.pid
#端口
port 7000
#开启集群
cluster-enabled yes
#集群的配置 配置文件首次启动自动生成
cluster-config-file nodes_7000.conf
请求超时,单位毫秒
cluster-node-timeout 5000
#aof日志开启 有需要就开启,它会每次写操作都记录一条日志
appendonly yes
启动redis实例
/usr/local/redis/bin/redis-server /usr/local/redis_cluster/7000/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis_cluster/7001/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis_cluster/7002/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis_cluster/7003/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis_cluster/7004/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis_cluster/7005/redis.conf
查看启动没有
ps -ef|grep redis
安装ruby和rubygems
yum -y install ruby ruby-devel rubygems rpm-build
用 gem 这个命令来安装 redis接口
gem install redis
如果报错
Error installing redis:redis requires Ruby version >= 2.2.2
升级Ruby
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
查看rvm库中已知的ruby版本
rvm list known
如果没有ruby版本就执行下面语句
rvm get head
安装ruby
rvm install 2.4.1
查看ruby版本号
ruby --version
gem install redis
再用 gem 这个命令来安装 redis接口
gem install redis
创建集群
/usr/local/redis/redis-trib.rb create --replicas 1 192.168.1.111:7000 192.168.1.111:7001 192.168.1.111:7002 192.168.1.123:7003 192.168.1.123:7004 192.168.1.123:7005
输入yes完成创建
到这里集群创建成功
测试集群
在服务器1中存入数据
/usr/local/redis/bin/redis-cli -h 192.168.1.111 -c -p 7000
在服务2中取出数据
查看节点信息
cluster nodes
php代码测试
<?php
$obj_cluster = new RedisCluster(NULL, ['192.168.1.111:7000', '192.168.1.111:7001', '192.168.1.111:7002','192.168.1.123:7003', '192.168.1.123:7004', '192.168.1.123:7005']);
$obj_cluster->set('name1', '1111');
$obj_cluster->set('name2', '2222');
$obj_cluster->set('name3', '3333');
$name1 = $obj_cluster->get('name1');
$name2 = $obj_cluster->get('name2');
$name3 = $obj_cluster->get('name3');
var_dump($name1);
var_dump($name2);
var_dump($name3);
输出
可以保存和获取,测试没问题,最后注意redis版本尽量相同,出现问题可以先flushall 和 cluster reset 清空节点再重试
停止redis实例
/usr/local/redis/bin/redis-cli -h 192.168.1.111 -p 7000 shutdown
/usr/local/redis/bin/redis-cli -h 192.168.1.111 -p 7001 shutdown
/usr/local/redis/bin/redis-cli -h 192.168.1.111 -p 7002 shutdown
/usr/local/redis/bin/redis-cli -h 192.168.1.123 -p 7003 shutdown
/usr/local/redis/bin/redis-cli -h 192.168.1.123 -p 7004 shutdown
/usr/local/redis/bin/redis-cli -h 192.168.1.123 -p 7005 shutdown