一、环境信息
操作系统:Centos
redis:redis 3.2.11
二、redis安装
2.1 redis下载
在redis官网下载安装包,http://download.redis.io/releases/redis-3.2.11.tar.gz
2.2 编译安装redis
cp redis-3.2.11.tar.gz /usr/local
cd /usr/local
tar -zxvf redis-3.2.11.tar.gz
cd redis-3.2.11
make && make install
安装完成后,使用“redis-server --version”检测安装是否正常。
2.3 编译安装ruby及rubygems
为方便使用redis-trib.rb配置redis集群,这里介绍如何编辑安装ruby和rubygems。
在官网下载ruby安装包,https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.6.tar.gz
下载rubygems安装包,https://rubygems.org/rubygems/rubygems-2.6.8.zip
cp ruby-2.2.6.tar.gz /usr/local
cd /usr/local
tar -zxvf ruby-2.2.6.tar.gz
cd ruby-2.2.6
./configure
make && make install
安装完成后,使用“ruby --version”检查安装是否成功。
cp rubygems-2.6.8.tgz /usr/lcoal
cd /usr/local
tar -zxvf rubygems-2.6.8.tgz
cd rubygems-2.6.8
ruby setup.rb
使用gem安装redis客户端:
gem install redis
为方便使用,将redis工具复制到
cp /usr/local/redis-3.2.1/src/redis-trib.rb /usr/local/bin/
三、redis集群配置
3.1 对节点进行配置,并启动
对每个节点进行配置,主要的配置内容如下:(不同的节点需要更改相应的配置)
port 7000 #端口
bind 192.168.160.8
pidfile "/var/run/redis_7000.pid"
logfile "/var/log/redis_7000.log" #日志路径
dir "/data/redis/7000" #数据存放路径
masterauth "test" #为了安全,设置了访问密码
requirepass "test"
使用命令,启动所有节点
/usr/bin/redis-server /etc/redis/7000.conf
/usr/bin/redis-server /etc/redis/7001.conf
/usr/bin/redis-server /etc/redis/7002.conf
为了安全,上面的节点中设置了密码访问,故在客户端连接时,需要添加-a参数设置密码:
redis-cli -c -p 7000 -a test -h 192.168.160.8
客户端连接7000节点,使用cluster nodes查看集群中节点情况:
此时,只有自身节点可见。
3.2 节点握手
客户端连接7000节点,使用以下命令与其他两个节点握手:
cluster meet 192.168.160.8 7001
cluster meet 192.168.160.8 7002
之后查看集群节点情况:
这时,查看集群状态,发现集群是不可用的,因为还没进行slot分配。
3.3 为节点分配slot
使用以下命令为各个节点分配slot,将16383个slot平均地分配给三个节点:
redis-cli -h 192.168.160.8 -a test -p 7000 cluster addslots {0..5461}
redis-cli -h 192.168.160.8 -a test -p 7001 cluster addslots {5462..10922}
redis-cli -h 192.168.160.8 -a test -p 7002 cluster addslots {10923..16383}
此时,查看集群状态,集群已可用:
集群状态OK。可正常使用。
另外,如果上面安装了redis-trib.rb工具,可以使用以下命令创建集群,期间会自动进行slot分配,只需确认一下即可。无需再手工分配:
redis-trib.rb create --replicas 0 192.168.160.8:7000 192.168.160.8:7001 192.168.160.8:7002
注:未测试redis-trib.rb工具在密码开启时的可用性,如需要,可自行验证。