PHP如何实现session数据存储到Redis Cluster中?一文教你弄个明白

最近在调研PHP中的session数据如何存储到Redis Cluster中,到底有几种方式实现呢?本文作者和你一探究竟。

一、为什么Session要存在Redis Cluster中?

公司以前的session数据存储在memcached当中,mc天然不支持cluster模式,导致mc出现故障时,session数据丢失,造成用户投诉。Redis存在standalone,sentinel,cluster模式,由于cluster模式存在数据冗余而且自动故障转移,我们采用Redis cluster模式进行存储,具体是三主三从的配置。

二、php存储实现session存储到Redis的两种方式

2.1、采用安装Redis扩展phpredis进行存储

(1)升级Redis扩展, 到官网选择支持Redis Cluster模式的扩展

扩展地址:http://pecl.php.net/get/redis-5.0.2.tgz

执行命令

$ cd /home/swh/redis-5.0.2
$ /home/swh/php/bin/phpize
$ ./configure --with-php-config=/home/swh/php/bin/php-config
$ make && make install

php扩展安装位置:/home/swh/php/lib/php/extensions/no-debug-non-zts-20151012,位置不固定,可以查看php.ini配置位置。

(2) 主要代码

$sessionSavePath = "seed[]=192.168.20.234:6383&seed[]=192.168.20.234:6390&seed[]=192.168.20.234:6391&seed[]=192.168.20.234:6392&seed[]=192.168.20.234:6393&seed[]=192.168.20.234:6394&auth=8df7387ddefe6127d6430a0ace4dea91";

ini_set('session.save_path', $sessionSavePath);
ini_set('session.save_handler', 'rediscluster');

(3) phpredis参考文档

https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#readme

2.2 采用composer依赖predis实现

predis实现了SessionHandlerInterface接口, 将session数据存储到redis中。

文档:https://github.com/nrk/predis

1、利用composer依赖安装predis

2、主要代码,具体超时参数设置详见predis文档。

// Prepend a base path if Predis is not available in your "include_path".
require 'Predis/Autoloader.php';
Predis\Autoloader::register();

// create redis cluster client
$parameters = ['tcp://10.0.0.1', 'tcp://10.0.0.2', 'tcp://10.0.0.3'];
$client = new Predis\Client($parameters);

// Register the session handler.
$handler = new Predis\Session\Handler($client, array('gc_maxlifetime' => 5));
$handler->register();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值