在linux上安装和配置Redis
Redis是一个开源的内存中的数据结构存储,。Redis具有内置事务,持久化,复制和对各种数据结构(如字符串,哈希,列表,集合等)的支持。使用Redis Sentinel可以使Redis高度可用。
安装Redis
添加EPEL存储库,并更新YUM以确认您的更改:yum install epel-release
yum update
安装Redis:yum install redis
启动Redis:systemctl start redis
可选:要在启动时自动启动Redis:systemctl enable redis
验证安装
确认Redis正在运行redis-cli:redis-cli ping
如果Redis正在运行,它将返回:PONG
Redis持久化
Redis为磁盘持久性提供了两个选项redis两种持久化有各自的优缺点。
RDB是默认的方式,所以您只需要设置AOF持久性:
1.在/etc/redis.conf中设置appendonly和appendfsync两个值:appendonly yes
appendfsync everysec
重新启动Redis:systemctl restart redis
优化
要提高Redis性能,请将Linux内核过度使用内存设置为1:sysctl vm.overcommit_memory=1
在/etc/sysctl.conf设置重启生效vm.overcommit_memory=1
设置Redis主/从复制
可以通过redis Sentinel来配置和监控主/从实例,如果主节点挂了,会选一个从节点当主节点,而其他所有从节点将被配置为使用新的主节点。
建议使用Redis V3.0及以上版本。
在主redis的机器上的/etc/redis.conf中绑定主ip:bind127.0.0.1
192.168.1.8
重新启动Redis以保存更改:systemctl restart redis
在从redis的机器上的/etc/redis.conf中配置从redis:slaveof 192.168.1.8 6379
该slaveof指令有两个参数:第一个是主节点的IP地址; 第二个是主配置中指定的Redis端口。
重新启动Redis以保存更改:systemctl restart redis
测试主从
主:redis-cli127.0.0.1:6379> set 'a' 1OK
从:redis-cli127.0.0.1:6379> set 'a' 1OK
redis Sentinel
Redis Sentinel是一个分布式系统( 集群):
Sentinel可以启动多个。具有多个Sentinel进程协作的优势如下:1.当多个
Sentinel判断主redis不可用时才进行故障转移,
降低了误报的可能性
2.避免单点故障
配置Sentinel
Redis的源码中有一个sentinel.conf 默认在etc/redis/sentinel.conf,它是Sentinel的配置文件:sentinel monitor mymaster 192.168.1.8 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
重点解释下这个:sentinel monitor redis-master 192.168.1.8 6379 2
Sentinel去监视一个名为redis-master的主服务器,这个主服务器的IP地址为192.168.1.8 ,端口号为6379。将这个主服务器判断为失效至少需要2个Sentinel同意,一般设置为N/2+1(N为Sentinel总数)。只要同意Sentinel的数量不达标,自动故障迁移就不会执行。如果你设置的小于半数,Sentinel也会默认最小值就是半数。
配置文件只配置master就行,从库会自动发现。
运行Sentinel
运行 有两种方式:
第一种
redis-sentinel /etc/redis/sentinel.conf
第二种
redis-server /path/to/sentinel.conf --sentinel
启动sentinel时配置文件的必须的,没有文件启动不成功。sentinel运行端口26379
配置完Redis和Sentinel之后,按顺序启动各个角色。启动顺序如下:Master->Slave->Sentinel,要确保按照这个顺序依次启动。
测试Sentinel
启动成功后可以通过redis客户端工具查看当前Sentinel的信息,终端输入:redis-cli -p 26379 -h 192.168.1.8 INFO Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:2
sentinel_scripts_queue_length:1
master0:name=redis-master,status=ok,address=192.168.1.8:6379,slaves=2,sentinels=1