码迷,mamicode.com
首页 > 其他好文 > 详细

predis连接redis sentinel和redis cluster

时间:2017-08-24 20:11:50      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:predis的使用   predis连redis cluster   predis连redis sentinel   

    开发之前都是用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);
        }
?>


详细用法参考github:https://github.com/nrk/predis


本文出自 “一直在路上” 博客,请务必保留此出处http://chenql.blog.51cto.com/8732050/1958910

predis连接redis sentinel和redis cluster

标签:predis的使用   predis连redis cluster   predis连redis sentinel   

原文地址:http://chenql.blog.51cto.com/8732050/1958910

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!