本教程共用到两台服务器搭建了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
![13034051-1ddf497dd925d078.png](https://i-blog.csdnimg.cn/blog_migrate/8edb31fb2361f51ffd3f3f1bcd5e6531.webp?x-image-process=image/format,png)
安装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
![13034051-f6aff96079f25675.png](https://i-blog.csdnimg.cn/blog_migrate/f9b96808bc96aac3aa5c38fed9827398.webp?x-image-process=image/format,png)
如果没有ruby版本就执行下面语句
rvm get head
安装ruby
rvm install 2.4.1
查看ruby版本号
ruby --version
gem install redis
![13034051-7e6746e3e45b69fd.png](https://i-blog.csdnimg.cn/blog_migrate/cb8adb2ce7620ec4cb4ba7f7c94c19d1.webp?x-image-process=image/format,png)
再用 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
![13034051-f3560dcaa015318b.png](https://i-blog.csdnimg.cn/blog_migrate/f5050edd2e6cd46d7249607bef3d401b.webp?x-image-process=image/format,png)
输入yes完成创建
![13034051-ad06206a80c0f133.png](https://i-blog.csdnimg.cn/blog_migrate/c4b2646895ad2a5b8625a0552371ac76.webp?x-image-process=image/format,png)
到这里集群创建成功
测试集群
在服务器1中存入数据
/usr/local/redis/bin/redis-cli -h 192.168.1.111 -c -p 7000
![13034051-d0a85d1c5b57008a.png](https://i-blog.csdnimg.cn/blog_migrate/03e87cdb1aea9185d6e49b0b99656b6e.webp?x-image-process=image/format,png)
在服务2中取出数据
![13034051-796b3b3121347463.png](https://i-blog.csdnimg.cn/blog_migrate/bedc88941dbee172401bc6050f4e21fc.webp?x-image-process=image/format,png)
查看节点信息
cluster nodes
![13034051-89508e59f04a917c.png](https://i-blog.csdnimg.cn/blog_migrate/981deff05b43cde744973f92e53fd1ab.webp?x-image-process=image/format,png)
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);
输出
![13034051-c17fd6ac69ad56ef.png](https://i-blog.csdnimg.cn/blog_migrate/fc7b9ea27fbb7ad6098e2d12dc0f9e71.webp?x-image-process=image/format,png)
可以保存和获取,测试没问题,最后注意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