搭建3主3从的redis cluster:基于redis分布式锁。

1.redis包上传

将redis-4.0.1.tar.gz包上传到一台机器下来,/usr/local目录下,解压缩,重命名为redis

scp ./redis-4.0.1.tar.gz ./ruby-2.3.4.tar.gz root@192.168.1.8:/usr/local/

tar -zxvf redis-4.0.1.tar.gz //解压redis  mv redis-4.0.1 redis //将解压后的redis文件命名为redis

2.装置redis依赖

yum install -y tcl gcc zlib-devel openssl-devel

以上装置了tcl、gcc、zlib-devel 、openssl-devel

3.编译redis

进入redis录内,执行make MALLOC=libc命令

make MALLOC=libc

4.把redis的一些命令脚本拷贝到PATH变量所在的目录

cp -a src/redis-server src/redis-cli src/redis-sentinel src/redis-trib.rb src/redis-check-aof src/redis-check-rdb src/redis-benchmark /usr/local/bin/

那个/usr/local/bin,就是PATH变量的目录,这样就能够间接执行redis的一些命令了

5、创立redis集群的目录

cd /optmkdir redis-clustermkdir redis-cluster/nodes-{7001,7002,7003} //在redis-cluster上面创立:nodes-7001、nodes-7002、nodes-7003的3个目录

6、批改配置文件

编辑redis.conf配置文件(以7001来举个例子,将7002和7003都编辑一下配置文件)

cd redis-cluster/nodes-7001vi redis.conf

批改配置文件内容如下:

bind 127.0.0.1 192.168.9.216 //(留神:bind的意思不是绑定内部服务器的IP,而是绑定本机能够承受拜访的IP)port 7001 pidfile redis_7001.pid loglevel noticelogfile "/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 yescluster-enabled yes  //集群模式开启cluster-node-timeout 15000    //集群节点之间超时工夫是15秒save 900 1  //save 300 10save 60 10000dbfilename dump.rdbappendfilename "appendonly.aof"appendfsync everysec

下面7001配置做完之后,将7001的下面配置拷贝到7002、7003目录下;而后批改对应配置的个性化配置门路即可。port、pidfile、logfile、dir、cluster-config-file。

7.另一台机器设置

在另外一台机器上,反复下面的步骤,然而弄成7001、7002、7003

8、顺次启动各个redis实例

两台机器上都顺次执行上面的命令就能够了:

cd /usr/local/redis/src./redis-server /opt/redis-cluster/nodes-7001/redis.conf //以配置文件模式启动redis服务../redis-server /opt/redis-cluster/nodes-7002/redis.conf./redis-server /opt/redis-cluster/nodes-7003/redis.conf

这个时候看nodes-7001外面,会主动生成一些文件,包含nodes-7001.conf(主动生成的集群配置文件),appendonly.aof,redis_7001.log,redis_7001.pid
查看启动过程

ps -ef | grep redis

9.装置ruby

咱们的这个centos 7操作系统默认没带ruby
将ruby-2.3.4.tar.gz上传到/usr/local下,解压缩,重命名为ruby

cd ruby./configuremake && make installruby -v

依照下面的步骤,两台机器都装一下ruby

10.装置ruby-redis.gem

(如果之前没装过上面的依赖,那么:首先装置:yum install -y zlib-devel openssl-devel)

咱们装置ruby-redis.gem是去对应redis上来装置。

在/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

其次装置:ruby的相干货色
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

11.创立redis cluster集群

进入redis/src上面:执行如下命令。

./redis-trib.rb create --replicas 1 192.168.1.8:7001 192.168.1.8:7002 192.168.1.8:7003 192.168.1.9:7001 192.168.1.9:7002 192.168.1.9:7003

跟上所有的redis实例,一共是6个

redis cluster主动会将6个redis实例做成3主3从的

此时显示始终在期待,其实是因为redis.conf中的bind出了问题,不能bind 127.0.0.1

在两台机器上,都执行:ps -aux | grep redis,看到3个redis过程
kill -9 杀死所有的redis过程

对/opt/redis-cluster目录下的nodes-几个文件夹内的文件,都删除,保留一个redis.conf*

而后批改6个redis实例的redis.conf,bind外面都去掉127.0.0.1
重启启动6个redis实例

再次执行redis-trib.rb create --replicas 1命令

12.测试redis cluster

在/usr/local/redis/src目录下:

redis-cli -c -h 192.168.1.8 -p 7001127.0.0.1:7001> CLUSTER info127.0.0.1:7001> CLUSTER nodes127.0.0.1:7001> set foo bar127.0.0.1:7003> get foo

参考

http://www.redis.cn/commands/...

https://blog.csdn.net/hanguof...