redis(四)
Redis搭建集群
首先安装一个纯净的redis(安装的方法在我前面的随笔中讲到了)
然后做下面的步骤,
创建一个放集群的文件夹 mkdir /usr/local/redis-cluster
进入 cd redis-cluster/
创建6个节点
mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data
在redis-cluster文件夹下 mkdir bin
进入redis cd /usr/local/redis-3.0.0/src
复制到刚才创建的文件夹下的bin目录
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin
复制一个新的实例到9001然后修改配置
cp -r /usr/local/redis /usr/local/redis-cluster/9001
port 9001
daemonize yes
bind 192.168.44.137 本虚拟机的ip地址
pidfile /var/run/redis_9001.pid
cluster-enabled yes
cluster-config-file nodes9001.conf
cluster-node-timeout 15000
appendonly yes
shift+g移动到末尾 dir /usr/local/redis-cluster/9001/data/
然后复制5次9001到其余5个端口
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9002
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9003
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9004
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9005
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9006
修改配置文件
vi /usr/local/redis-cluster/9002/redis/etc/redis.conf
:%s/9001/9002
vi /usr/local/redis-cluster/9003/redis/etc/redis.conf
:%s/9001/9003
vi /usr/local/redis-cluster/9004/redis/etc/redis.conf
:%s/9001/9004
vi /usr/local/redis-cluster/9005/redis/etc/redis.conf
:%s/9001/9005
vi /usr/local/redis-cluster/9006/redis/etc/redis.conf
:%s/9001/9006
最后都配置完后启动,如下图,配置完成
现在测试一个端口,但是报错了,因为他们暂时还不在一个集群中,互相直接发现不了,而且还没有可存储的位置,就是所谓的slot(槽)。
添加插件
yum install ruby
yum install rubygems
gem install redis -v 3.0.0 (我是直接安装成功的没有抱任何错误)
集群环境测试
/usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.44.137:9001 192.168.44.137:9002 192.168.44.137:9003 192.168.44.137:9004 192.168.44.137:9005 192.168.44.137:9006
截取了一部分图,搭建成功
测试
输出/usr/local/redis-cluster/9001/redis/bin/redis-cli -c -h 192.168.44.137 -p 9001
根据输入的key,redis会通过CRC16算法取余计算出应该存在9002端口,所以在9001端口输入语句后会跳转到9002端口
重新进入9001端口,此时通过get name还是会转移到9002端口