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);
        }
?>

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

时间: 2024-10-05 05:32:18

predis连接redis sentinel和redis cluster的相关文章

基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案

基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案 http://www.tuicool.com/articles/naeEJbv 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案 时间 2014-02-21 15:15:17  IT社区推荐资讯 原文  http://itindex.net/detail/48192-redis-sentinel-redis Redis Sentinel是一个分布式系统,可以部署多个Se

基于Redis Sentinel的Redis集群(主从Sharding)高可用方案(转)

本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在Redis2.4中,Redis2.8中Sentinel更加稳定),Redis集群是以分片(Sharding)加主从的方式搭建,满足可扩展性的要求: Redis Sentinel介绍 Redis Sentinel是Redis官方提供的集群管理工具,主要有三大功能: 监控,能持续监控Redis的主从实例是否正常

(转)基于Redis Sentinel的Redis集群(主从&amp;Sharding)高可用方案

转载自:http://warm-breeze.iteye.com/blog/2020413 本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在Redis2.4中,Redis2.8中Sentinel更加稳定),Redis集群是以分片(Sharding)加主从的方式搭建,满足可扩展性的要求: Redis Sentinel介绍 Redis Sentinel是Re

redis sentinel及redis主从读写分离时sentinel配置

一 主从复制高可用 #主从复制存在的问题: #1 主从复制,主节点发生故障,需要做故障转移,可以手动转移:让其中一个slave变成master #2 主从复制,只能主写数据,所以写能力和存储能力有限 二 架构说明 可以做故障判断,故障转移,通知客户端(其实是一个进程),客户端直接连接sentinel的地址 1 多个sentinel发现并确认master有问题 2 选举触一个sentinel作为领导 3 选取一个slave作为新的master 4 通知其余slave成为新的master的slave

利用Redis Sentinel实现redis主从自动切换

redis主从配置很简单,只需要在slave的配置里加slaveof 192.168.0.100 6379(master的ip和端口) 如果master有密码再设置 masterauth password.主从设置以后要提高可靠性就要用到Sentinel. Sentinel主要作用有 监控.Sentinel不断检查Master和Slave是否工作正常. 通知.Sentinel可以通过API通知系统管理员,另一台计算机程序,受监控的Redis实例有问题. 自动故障切换.如果主机不按预期工作,Sen

Redis Essentials 读书笔记 - 第九章: Redis Cluster and Redis Sentinel (Collective Intelligence)

Chapter 9. Redis Cluster and Redis Sentinel (Collective Intelligence) 上一章介绍了复制,一个master可以对应一个或多个slave(replica), 在以下的情况下是够用的: 1. master有足够内存容纳所有key 2. 通过slave可以扩展读,解决网络吞吐量的问题 3. 允许停止master的维护窗口时间 4. 通过slave做数据冗余 但复制解决不了自动failover和自动resharding的问题,在以下的情

5、redis监控工具--redis sentinel使用说明及注意事项

通过前面4篇笔记,大家对redis的基本概念及配置已经有了解,本篇笔记重点说明如何通过官方发布的redis sentinel工具来监控redis的运行状态.另外,对sentinel使用过程中的注意事项做些讨论. 1. Redis Sentinel功能        Redis Sentinel是一套用于管理Redis实例的分布式系统,主要完成3项任务:         1) Monitoring:持续监控Redis master或slave实例的运行情况是否符合预期         2) Not

redis sentinel 主从切换(failover)解决方案,详细配置

主从复制简单来说就是把一台redis数据库中的数据同步到另一台redis数据库,并且按照数据流向,数据的发送者我们称作master,数据的接受者我们称作slave(master/slave的划分并不是那么一定的,譬如B可以作为A的slave,但同时也可以作为C的master),下面就从slave和master的角度分别说明主从复制流程. 首先是slave端,对于slave端来说,主从复制主要经历四个阶段: 第一阶段:与master建立连接 第二阶段:向master发起同步请求(SYNC) 第三阶

Redis Sentinel(哨兵详解)

摘要:Redis Sentinel(哨兵):集群解决方案 官方文档(英文) http://redis.io/topics/sentinel .Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务: 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常. 提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应