本文基于两台虚拟机而搭建一个三主三从的redis集群
当然按照这个思路为每台机器都搞一个redis 然后搭建集群也肯定行
已亲测
前置
先下载好
redis-4.0.1.tar.gz
ruby-2.3.4.tar.gz
安装步骤
(1)将redis-4.0.1.tar.gz包上传到一台机器上去,/usr/local目录下,解压缩,重命名为redis
(2)安装redis需要的一些依赖:
yum install -y tcl gcc zlib-devel openssl-devel
(3)进入redis目录内,执行命令
cd /user/local/redis
make MALLOC=libc
(4)创建redis集群的目录
cd /opt
mkdir redis-cluster
mkdir redis-cluster/nodes-{7001,7002,7003}
(5)编辑redis.conf配置文件(以7001来举个例子,将7002和7003都编辑一下配置文件)
cd redis-cluster/nodes-7001
vi redis.conf
redis.conf文件如下
bind 192.168.31.114
port 7001
pidfile redis_7001.pid
loglevel notice
logfile "/opt/redis-cluster/nodes-7001/redis_7001.log"
dir /opt/redis-cluster/nodes-7001/
cluster-config-file nodes-7001.conf
daemonize yes
supervised no
appendonly yes
cluster-enabled yes
cluster-node-timeout 15000
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
appendfilename "appendonly.aof"
appendfsync everysec
(6)在另外一台机器上,重复上面的步骤,但是弄成7001、7002、7003
(7)依次启动各个redis实例(以7001作为参考)
在两台机器上都依次执行下面的命令就可以了:
cd /usr/local/redis/src
./redis-server /opt/redis-cluster/nodes-7001/redis.conf
./redis-server /opt/redis-cluster/nodes-7002/redis.conf
./redis-server /opt/redis-cluster/nodes-7003/redis.conf
ps -ef | grep redis
(8)安装ruby
有ruby则卸载掉
ruby -v(默认是老版本ruby,卸载掉)
rpm -qa | grep ruby
yum erase ruby
将ruby-2.3.4.tar.gz上传到/usr/local下,解压缩,重命名为ruby
cd ruby
./configure
make && make install
ruby -v
按照上面的步骤,两台机器都装一下ruby
(9)安装ruby-redis.gem
如果之前没装过,那么执行:
yum install -y zlib-devel openssl-devel
在/usr/local/redis下,gem install redis
cd /usr/local/redis
gem install redis
如果报错:
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
则
cd /usr/local/ruby/ext/zlib
ruby extconf.rb
make && make install
再次gem install redis,如果再次报错:
ERROR: While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources
cd /usr/local/ruby/ext/openssl
ruby extconf.rb
将上个步骤生成的MakeFile文件中的${top_srcdir}都替换为…/…
make && make install
基本就是上面两个问题,都解决了之后,就可以正常的:gem install redis
当然我安装的时候没有发现这个问题
(10)创建redis cluster集群
在/usr/local/redis/src目录下:
./redis-trib.rb create --replicas 1 192.168.31.114:7001 192.168.31.114:7002 192.168.31.114:7003 192.168.31.184:7001 192.168.31.184:7002 192.168.31.184:7003
(11)测试redis cluster
在/usr/local/redis/src目录下:
redis-cli -c -h 192.168.31.114 -p 7001
127.0.0.1:7001> CLUSTER info
127.0.0.1:7001> CLUSTER nodes
127.0.0.1:7001> set foo bar
127.0.0.1:7003> get foo