qbnk/redisgateway

一个处理主/从法定多数的抽象层,同时作为php-redis扩展的代理

1.1.8 2021-01-27 09:07 UTC

This package is auto-updated.

Last update: 2024-09-07 20:21:57 UTC


README

此类旨在在PHP应用程序和包含由RedisSentinels监控的主和从实例的Redis设置之间添加一个抽象层。

想法是这可以与简单的\Redis类交换,但也可以在节点故障的情况下处理指向新的主实例的方向。

之前

$client = new Redis();
$client->connect('127.0.0.1', 6379, 0, null, 0, 0);

$client->auth('qwerty');
$client->select(123);

之后

$client = new \QBNK\Redis\RedisGateway();

$client->addSentinels([
    new RedisSentinel('10.0.0.100', 26379),
    new RedisSentinel('10.0.0.101', 26379),
    new RedisSentinel('10.0.0.102', 26379)
]);

$client->auth('qwerty');
$client->select(123);

对于Redis哨兵不了解公共IP地址的设置(例如,仅了解内部IP地址的虚拟机),您可以向RedisGateway添加IP映射

$alias1 = new \QBNK\Redis\Alias('127.0.0.1', '1.2.3.4', 1234, 5678);
$alias2 = new \QBNK\Redis\Alias('127.0.0.2', '1.2.3.5', 1235, 5679);


$client = new \QBNK\Redis\RedisGateway();
$client
    ->addAlias($alias1)
    ->addAlias($alias2);