1、安装ruby
不能用yum安装,yum安装的最高版本是2.0,ruby需要2.2以上的版本
下载网站:http://www.ruby-lang.org/en/downloads/
[root@mdw ~]# yum install gcc gcc-c++ autoconf automake make zlib-devel openssl-devel
[root@mdw local]# tar -xzf ruby-2.6.3.tar.gz
[root@mdw local]# cd ruby-2.6.3
[root@mdw local]# ./configure --prefix=/usr/local/ruby
[root@mdw local]# make && make install
[root@mdw local]# vi /etc/profile
#RUBY_HOME
export RUBY_HOME=/usr/local/ruby
export PATH=$RUBY_HOME/bin:$PATH
[root@mdw local]# source /etc/profile
2、安装redis.gem
下载对应的redis.gem:https://rubygems.org/gems/redis/versions/
[root@mdw bin]# gem install redis-4.0.1.gem
Successfully installed redis-4.0.1
Parsing documentation for redis-4.0.1
Installing ri documentation for redis-4.0.1
Done installing documentation for redis after 0 seconds
1 gem installed
可能出现以下问题:
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
修改:
[root@mdw ruby-2.6.3]# cd ext/zlib/
[root@mdw zlib]# yum install zlib-devel -y
[root@mdw zlib]# ruby extconf.rb
[root@mdw zlib]# vim Makefile
将$(top_srcdir) 修改成../..
[root@mdw zlib]# make
[root@mdw zlib]# make install
/usr/local/ruby/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- openssl (LoadError)
[root@mdw zlib]# cd ../openssl
[root@mdw openssl]# yum install openssl-devel -y
[root@mdw openssl]# ruby extconf.rb
[root@mdw openssl]# vim Makefile
将$(top_srcdir) 修改成../..
[root@mdw openssl]# make
[root@mdw openssl]# make install
3、安装redis
[root@mdw local]# wget http://download.redis.io/releases/redis-4.0.14.tar.gz
[root@mdw local]# tar xzf redis-4.0.14.tar.gz
[root@mdw local]# cd redis-4.0.14/
[root@mdw redis-4.0.14]# make
[root@mdw redis-4.0.14]# cd src/
[root@mdw src]# ./redis-server ../redis.conf ##看是否正常启动(正常启动后关闭)
4、集群搭建
[root@mdw ~]# mkdir -p /home/redis-cluster
[root@mdw ~]# cd /home/redis-cluster
[root@mdw redis-cluster]# mkdir bin logs nodes conf
[root@mdw redis-cluster]# mkdir -p data/primary
[root@mdw redis-cluster]# mkdir -p data/mirror
[root@mdw redis-cluster]# ls
bin logs nodes conf data
[root@mdw redis-cluster]# cp /usr/local/redis-4.0.14/src/redis-cli ./bin/
[root@mdw redis-cluster]# cp /usr/local/redis-4.0.14/src/redis-server ./bin/
[root@mdw redis-cluster]# cp /usr/local/redis-4.0.14/src/redis-trib.rb ./bin/
[root@mdw redis-cluster]# ls ./bin/
redis-cli redis-server redis-trib.rb
[root@mdw redis-cluster]# cp /usr/local/redis-4.0.14/redis.conf ./conf/
[root@mdw redis-cluster]# ls ./conf/
redis.conf
[root@mdw redis-cluster]# cd conf/
分别在三个节点创建redis.conf文件端口、设置为7001-7002
[root@mdw conf]# mv redis.conf redis-7001.conf
[root@mdw conf]# vim redis-7001.conf
daemonize yes #后台运行
port 7001 #端口
bind 192.***.***.185 #ip
pidfile /var/run/redis_7001.pid #pid进程文件
logfile "/home/redis-cluster/logs/redis-7001.logs" #日志文件
cluster-enabled yes #开启集群模式
cluster-config-file /home/redis-cluster/nodes/nodes-7001.conf #节点数据保存文件
cluster-node-timeout 5000 #超时时间
dir /home/redis-cluster/data/primary #数据存放目录
appendonly yes #启动AOF增量持久化策略
[root@mdw conf]# cp redis-7001.conf redis-7002.conf
5、启动redis服务
在三个节点上分别启动redis服务,共6个redis进程。
[root@mdw bin]# cd /home/redis-cluster/bin/
[root@mdw bin]# ./redis-server ../conf/redis-7001.conf
[root@mdw bin]# ./redis-server ../conf/redis-7002.conf
查看进程:
[root@mdw bin]# ps aux | grep redis
root 24424 0.0 0.0 147360 6776 ? Ssl 10:38 0:00 ./redis-server 192.***.***185:7001 [cluster]
root 24439 0.0 0.0 147360 6260 ? Ssl 10:38 0:00 ./redis-server 192.***.***185:7002 [cluster]
root 24527 0.0 0.0 112728 960 pts/0 R+ 10:39 0:00 grep --color=auto redis
6、集群连接
在ruby的节点进行操作
[root@mdw bin]# ./redis-trib.rb create --replicas 1 192.***.***185:7001 192.***.***186:7001 192.***.***187:7001 192.***.***186:7002 192.***.***187:7002 192.***.***185:7002
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.***.***185:7001
192.***.***186:7001
192.***.***187:7001
Adding replica 192.***.***186:7002 to 192.***.***185:7001
Adding replica 192.***.***187:7002 to 192.***.***186:7001
Adding replica 192.***.***185:7002 to 192.***.***187:7001
...
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
至此,redis集群安装成功。
7、测试
[root@mdw bin]# ./redis-cli -h 192.***.***.185 -p 7001 -c
192.***.***.185:7001> get name
-> Redirected to slot [5798] located at 192.***.***.186:7001
(nil)
192.***.***.186:7001> set name chongqing
OK
192.***.***.186:7001> get name
"chongqing"
192.***.***.186:7001> set id 2222
OK
192.***.***.186:7001> get id
"2222"
192.***.***.186:7001> exit
[root@mdw bin]# ./redis-cli -h 192.***.***.187 -p 7002 -c
192.***.***.187:7002> set wang xu
-> Redirected to slot [2919] located at 192.***.***.185:7001
OK
192.***.***.185:7001> get wang
"xu"
192.***.***.185:7001> get name
-> Redirected to slot [5798] located at 192.***.***.186:7001
"chongqing"
192.***.***.186:7001> get id
"2222"