PHP中使用Redis,Redis主从配置,Redis高可用哨兵介绍

本文介绍了如何在PHP中安装和使用Redis,包括通过pecl安装扩展和源码安装方法,以及如何存储session。同时深入探讨了Redis Sentinel的主从配置,主要功能,如监控、通知、故障转移和配置提供,详细阐述了其工作流程和相关概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP中使用Redis

php安装redis扩展模块 - 使用pecl安装

/usr/local/php-fpm/bin/pecl install redis

vi  /usr/local/php/etc/php.ini  //增加extension = redis.so

通过源码安装

wget https://github.com/phpredis/phpredis/archive/4.2.0.tar.gz
mv 4.2.0.tar.gz  php-redis.tar.gz
tar zxvf php-redis.tar.gz
cd phpredis-4.2.0/
/usr/local/php-fpm/bin/phpize
./configure --with-php-config=/usr/local/php-fpm/bin/php-config
make && make install
vi  /usr/local/php/etc/php.ini  //增加extension = redis.so

php中使用redis - 存储session

vim /usr/local/php-fpm/etc/php.ini//更改或增加
session.save_handler = "redis" 
session.save_path = "tcp://127.0.0.1:6379" 

或者apache虚拟主机配置文件中也可以这样配置:
php_value session.save_handler "redis" 
php_value session.save_path "tcp://127.0.0.1:6379" 
 
或者php-fpm配置文件对应的pool中增加:
php_value[session.save_handler] = redis
php_value[session.save_path] = "tcp://127.0.0.1:6379"

创建测试文件

wgt http://study.lishiming.net/.mem_se.txt
mv .mem_se.txt session.php
/usr/local/php/bin/php session.php

Redis主从配置

为了节省资源,我们可以在一台机器上启动两个redis服务
cp /etc/redis.conf  /etc/redis2.conf
vim /etc/redis2.conf //需要修改port,dir,pidfile,logfile
还要增加一行
replicaof 127.0.0.1 6379
如果主上设置了密码,还需要增加
masterauth aminglinux>com //设置主的密码
启动之前不要忘记创建新的dir目录
redis-server /etc/redis2.conf
测试:在主上创建新的key,在从上查看
注意:redis主从和mysql主从不一样,redis主从不用事先同步数据,它会自动同步过去

Redis sentinel介绍

Redis Sentinel是Redis高可用的实现方案。Sentinel是一个管理多个Redis实例的工具,它可以实现对Redis的监控、通知、自动故障转移。

Redis Sentinel的主要功能

Sentinel的主要功能包括主节点存活检测、主从运行情况检测、自动故障转移(failover)、主从切换。Redis的Sentinel最小配置是一主一从。 Redis的Sentinel系统可以用来管理多个Redis服务器,该系统可以执行以下四个任务:

  • 监控

    Sentinel会不断的检查主服务器和从服务器是否正常运行。

  • 通知

    当被监控的某个Redis服务器出现问题,Sentinel通过API脚本向管理员或者其他的应用程序发送通知。

  • 自动故障转移

    当主节点不能正常工作时,Sentinel会开始一次自动的故障转移操作,它会将与失效主节点是主从关系的其中一个从节点升级为新的主节点, 并且将其他的从节点指向新的主节点。

  • 配置提供者

    在Redis Sentinel模式下,客户端应用在初始化时连接的是Sentinel节点集合,从中获取主节点的信息。

Redis Sentinel的工作流程

参考链接(含图):http://www.cnblogs.com/jifeng/p/5138961.html

Sentinel负责监控集群中的所有主、从Redis,当发现主故障时,Sentinel会在所有的从中选一个成为新的主。
并且会把其余的从变为新主的从。同时那台有问题的旧主也会变为新主的从,也就是说当旧的主即使恢复时,
并不会恢复原来的主身份,而是作为新主的一个从。

在Redis高可用架构中,Sentinel往往不是只有一个,而是有3个或者以上。目的是为了让其更加可靠,毕竟主
和从切换角色这个过程还是蛮复杂的。

相关概念

  • 主观失效

    SDOWN(subjectively down),直接翻译的为”主观”失效,即当前sentinel实例认为某个redis服务为”不可用”状态.

  • 客观失效

    ODOWN(objectively down),直接翻译为”客观”失效,即多个sentinel实例都认为master处于”SDOWN”状态,那么此时master将处于ODOWN,ODOWN可以简单理解为master已经被集群确定为”不可用”,将会开启failover

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值