redis安装:

(1)准备安装文件;

(2)src文件下 make MALLOC=libc

(3)make install

注:可能存在环境缺失报错,根据提示安装环境就好了。

一、单例

劣势:只有1个实例,存在备份问题,数据体量大时影响性能。

1、单例启动 :redis-server ./redis.conf &

2、连接:redis-cli -p 6379

二、主从

优势:解决了数据备份问题,实现的读写分离。

劣势:master挂掉后,服务就over了,需要手动重新启动master;所有实例储存的数据一模一样,造成资源浪费。

1、复制3份redis.conf文件。redis-6379.conf,redis-6380,redis-6381.conf。

master 6379.conf不用特殊设置,

slave1 redis-6380.conf 添加 slaveof 127.0.0.1 6379

slave2 redis-6381.conf 添加 slaveof 127.0.0.1 6379

*也可以在实例启动后 添加 slaveof 127.0.0.1 6379

2、分别启动3个redis实例。

3、测试:在master 6379 添加key,其他slave可以get到相同的值。

三、哨兵

在主从的基础上,另外添加3个实例,分别监测master和slave的状态。哨兵也是redis实例。当master发生夯机后,哨兵自动选择另一个slave作为新的master,并通知另外的slave,成为新master的slave。而且继续监测挂掉的机器,当其重新启动后,将作为新master的slave。

优势:弥补了单纯主从模式下,master夯机后,服务挂掉的不足;

劣势:所有实例储存的数据一模一样,造成资源浪费。

1、启动3个主从实例,见上节;

2、复制3份sentinel.conf

port 26379  
 daemonize yes  
 logfile "26379.log"  
 dir /opt/soft/redis/data  
 sentinel monitor mymaster 127.0.0.1 6379 2
 sentinel down-after-milliseconds mymaster 30000  
 sentinel parallel-syncs mymaster 1  
 sentinel failover-timeout mymaster 180000
 sentinel myid mm55d2d712b1f3f312b637f9b546f00cdcedc787

其中: port 、myid需要每一个实例唯一;mymaster为初始master地址。

3、分别启动3个sentinel实例, redis-sentinel ./sentinel-26379.conf &

4、测试。

注意:多台服务器部署,redis 和 sentinel 实例,端口防火墙要打开

四、集群

1、安装ruby环境

(1)准备ruby-2.4.2.tar.gz安装包,并解压;

(2)cd ruby-2.4.2/

        ./configure

        make && make install

        ruby -v

2、安装zlib工具包(缺少zlib,下一步会报错)

(1)准备zlib-1.2.11.tar.gz安装包,并解压

(2)cd zlib-1.2.11/

         ./configure

         make && make install

      检查 whereis zlib

(3)编译ruby中的zlib

cd ruby-2.4.2/ext/zlib

./configure

make 

make install

如遇ruby.h文件不存在错误,修改Makefile文件中  把$(top_srcdir) 换成 ../../ ;

3、安装rubygems工具包

(1)准备rubygems-2.7.6.tgz安装包,并解压

(2)cd rubygems-2.7.4/

ruby setup.rb

4、安装OpenSSL(缺失导致无法安装ruby-redis插件)

(1)准备openssl-1.0.2o.tar.gz安装包,并解压

(2)./config -fPIC --prefix=/usr/local/openssl enable-shared

./config -t

make && make install

(3)编译ruby中的OpenSSL

cd ruby-2.4.2/ext/openssl

ruby extconf.rb --with-openssl-include=/usr/local/openssl/include/ --with-openssl-lib=/usr/local/openssl/lib

vim Makefile 把所有的 $(top_srcdir) 换成 ../.. 注意替换所有

make && make install

5、安装ruby-redis插件

(1)gem install redis-3.2.2.gem

6、集群启动

(1)启动6个redis实例

配置文件如下:

port 7000
 bind 127.0.0.1  
 daemonize yes 
 pidfile  /var/run/redis_7000.pid
 cluster-enabled  yes
 cluster-config-file node_7000.conf
 cluster-node-timeout  15000
 appendonly  yes

(2)cd redis-4.0.1/src

./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
前3个会作为master,后3个依次作为前3个slave,即7000-7004,7001-7005,7003-7006

(3)连接测试:redis-cli -c -p 7000

        -c:以集群模式连接