Redis4.0.9 Cluster 安装

环境准备

操作系统:CentOS7_x86_64

IP: 192.168.1.224


1.下载redis-4.0.9.tar.gz

wget http://download.redis.io/releases/redis-4.0.9.tar.gz

 

2.安装redis 

$ tar -zxf redis-4.0.9.tar.gz
$ cd redis-4.0.9
$ make && make install

3. redis配置

 

配置服务启动脚本及相关参数

$ cp utils/redisinitscript /etc/init.d/redis_6379
$ mkdir /etc/redis
$ cp redis.conf /etc/redis/6379.conf
$ mkdir -p /var/redis/6379 #配置持久化文件的目录
$ mkdir -p /var/log/redis #redis日志文件存放目录

redis.conf 配置参数调整如下

 # port 6379                -- 默认端口号
 # daemonize yes            -- 后台运行,默认为no
 # bind 127.0.0.1 192.168.1.224 -- 192.168.1.224为本机地址
 # pidfile /var/run/redis_6379.pid -- pid文件
 # logfile /var/log/redis/6379.log -- 日志文件
 # dir /var/redis/6379  -- 工作目录
 # cluster-enabled yes      -- 默认为注释掉
 # cluster-config-file nodes-6379.conf -- 该配置文件首次启动自动生成
 # cluster-node-timeout 15000
 # appendonly yes -- aof日志开启,有需要就开启,它会每次写操作都记录一条日志

 

设置开机自启动

$ vim /etc/init.d/redis_6379
在#!/bin/bash 之后添加如下信息
 # chkconfig: 2345 10 90

 

$ chkconfig --add redis_6379

其中2345是默认启动级别,级别有0-6共7个级别。 等级0表示:表示关机      等级1表示:单用户模式      等级2表示:无网络连接的多用户命令行模式      等级3表示:有网络连接的多用户命令行模式      等级4表示:不可用      等级5表示:带图形界面的多用户模式      等级6表示:重新启动 10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低

 

创建其他节点

 # 配置文件复制
cp redis.conf /etc/redis/6380.conf
cp redis.conf /etc/redis/6381.conf
cp redis.conf /etc/redis/6382.conf
cp redis.conf /etc/redis/6383.conf
cp redis.conf /etc/redis/6384.conf
 # 工作目录复制 
mkdir -p /var/redis/6380
mkdir -p /var/redis/6381
mkdir -p /var/redis/6382
mkdir -p /var/redis/6383
mkdir -p /var/redis/6384
 # 复制自启脚本
cd /etc/init.d
cp redis6379 redis6380
cp redis6379 redis6381
cp redis6379 redis6382
cp redis6379 redis6383
cp redis6379 redis6384

 

安装Ruby环境 1.下载ruby-2.4.4.tar.gz

wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.4.tar.gz

2.安装ruby

yum install zlib zlib-devel openssl openssl-devel rubygems
$ tar -zxf ruby-2.4.4.tar.gz
$ cd ruby-2.4.4
$ ./configure --prefix=/Data/servers/ruby
$ make && make install
$ ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby
$ ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby

更新国内gem源 http://ruby.taobao.org
$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
$ gem install redis # 安装redis依赖

编译安装zlib

$ cd /Data/servers/ruby-2.4.4/ext/zlib
$ ruby extconf.rb
 
错误:make: *** No rule to make target /include/ruby.h', needed byzlib.o'.  Stop

 #修改Makefile
 zlib.o: ${top_srcdir}/include/ruby.h
 zlib.o: ../../include/ruby.h

 

错误:Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources yum install openssl openssl-devel #修改Makefile $ 1,$s/${top_srcdir}\/include\/ruby.h/..\/..\/include/ruby.h/g $ make && make install

 

3.创建集群

./redis-trib.rb create --replicas 1 192.168.1.224:6379 192.168.1.224:6380 192.168.1.224:6381 192.168.1.224:6382 192.168.1.224:6383 192.168.1.224:6384
出现提示输入框是输入:yes

输出结果如下

 

[root@localhost src]# ./redis-trib.rb create --replicas 1 192.168.1.224:6379 192.168.1.224:6380 192.168.1.224:6381 192.168.1.224:6382 192.168.1.224:6383 192.168.1.224:6384
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.1.224:6379
192.168.1.224:6380
192.168.1.224:6381
Adding replica 192.168.1.224:6383 to 192.168.1.224:6379
Adding replica 192.168.1.224:6384 to 192.168.1.224:6380
Adding replica 192.168.1.224:6382 to 192.168.1.224:6381
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 0a538f5d015ce5a109771c2002d0201e8e567549 192.168.1.224:6379
   slots:0-5460 (5461 slots) master
M: 21e03e4d6ea0957df8917c335216d9e7e14497ac 192.168.1.224:6380
   slots:5461-10922 (5462 slots) master
M: 203f7d8d06b3adc5271247ca8175331564b30487 192.168.1.224:6381
   slots:10923-16383 (5461 slots) master
S: e086bc41c0410256ce339f8d90a154765aa347e1 192.168.1.224:6382
   replicates 203f7d8d06b3adc5271247ca8175331564b30487
S: 5447e331f1a44f776cbddf82eb4b74772d95738f 192.168.1.224:6383
   replicates 0a538f5d015ce5a109771c2002d0201e8e567549
S: 85d27b84e855d57724ef3c13bd2ff94809f4c043 192.168.1.224:6384
   replicates 21e03e4d6ea0957df8917c335216d9e7e14497ac
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join....
>>> Performing Cluster Check (using node 192.168.1.224:6379)
M: 0a538f5d015ce5a109771c2002d0201e8e567549 192.168.1.224:6379
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: 85d27b84e855d57724ef3c13bd2ff94809f4c043 127.0.0.1:6384
   slots: (0 slots) slave
   replicates 21e03e4d6ea0957df8917c335216d9e7e14497ac
M: 203f7d8d06b3adc5271247ca8175331564b30487 127.0.0.1:6381
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
M: 21e03e4d6ea0957df8917c335216d9e7e14497ac 127.0.0.1:6380
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: e086bc41c0410256ce339f8d90a154765aa347e1 127.0.0.1:6382
   slots: (0 slots) slave
   replicates 203f7d8d06b3adc5271247ca8175331564b30487
S: 5447e331f1a44f776cbddf82eb4b74772d95738f 127.0.0.1:6383
   slots: (0 slots) slave
   replicates 0a538f5d015ce5a109771c2002d0201e8e567549
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

4.管理常用命令

$ pkill redis  #快速关闭集群
$ ./redis-trib.rb check 192.168.1.224:6379 #检查集群状态

5.集群常用命令

$ redis-cli
$ cluster nodes #列出集群所有节点
$ cluster info  #显示集群的信息

 

节点

cluster meet   #将 ip 和 port 所指定的节点添加到集群当中
cluster forget <node_id style="-webkit-print-color-adjust: exact;"> #从集群中移除 nodeid 节点。
cluster replicate <nodeid> #将当前节点设置为 nodeid 节点的从节点。
cluster saveconfig #将节点的配置文件保存到硬盘

槽(slot)

cluster addslots id> #将槽 slot 指派给 nodeid 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。
cluster setslot id> #将本节点的槽 slot 迁移到 nodeid 指定的节点中。
cluster setslot id> #从 node_id 指定的节点中导入槽 slot 到本节点。
cluster setslot 

 

cluster keyslot  #计算键 key 应该被放置在哪个槽上。
cluster countkeysinslot 

猜你喜欢

转载自litbadboy.iteye.com/blog/2422760