php redis sentinel,predis连接redis sentinel和redis cluster

开发之前都是用phpredis连接redis服务的,后来随着sentinel和redis cluster的成熟,redis主从都结合sentinel做了高可用,部分数据和并发大的业务使用了redis集群。

相对于phpredis,predis原生支持redis sentinel和redis cluster的连接,当主节点挂掉从节点提升为主节点时客户端会自动发现新的主节点,从而实现redis的高可用。

由于部分phper不知道通过predis连接sentinel和cluster,特意看了一个predis的文档,写了两个demo:

predis连接redis cluster: 连集群的时候可以只配置一个节点或者部分节点的信息,因为这里的配置是为了发现集群中的节点的,只要有一个能连上都能成功发现整个集群的节点,但是为了不建议只配置一个节点。<?php

require 'predis/autoload.php';

$servers = array(

'tcp://127.0.0.1:6479',

'tcp://127.0.0.1:6480',

'tcp://127.0.0.1:6481',

'tcp://127.0.0.1:6482',

'tcp://127.0.0.1:6483',

'tcp://127.0.0.1:6484',

);

$options = array('cluster' => 'redis');

$client = new Predis\Client($servers, $options);

$i=0;

for($i=0;$i<100000;$i++){

try

{

$client->set($i, "test".$i);

$result = $client->get($i);

echo date('y-m-d h:i:s',time());

echo " ".$result."\n";

}

catch(Exception $e)

{

echo date('y-m-d h:i:s',time());

echo " ".'Message: ' .$e->getMessage()."\n";

}

sleep(1);

}

?>

predis连接redis sentinel:<?php

require 'predis/autoload.php';

$sentinels = ['tcp://127.0.0.1:6380', 'tcp://10.60.40.233:6380', 'tcp://10.60.40.222:6379'];

$options   = ['replication' => 'sentinel', 'service' => 'master1'];

$client = new Predis\Client($sentinels, $options);

date_default_timezone_set('Asia/Shanghai');

$i=0;

for($i=0;$i<100000;$i++){

$client->set($i, "test".$i);

$result = $client->get($i);

echo date('y-m-d h:i:s',time());

echo " ".$result."\n";

sleep (1);

}

?>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值