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:以集群模式连接