qbnk / redisgateway
一个处理主/从法定多数的抽象层,同时作为php-redis扩展的代理
1.1.8
2021-01-27 09:07 UTC
Requires
- php: >=7.2
- ext-mbstring: *
- ext-redis: ~5
Requires (Dev)
- mockery/mockery: 1.3.x-dev
- phpunit/phpunit: 8.5.x-dev
Suggests
- monolog/monolog: Great logging alternative.
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);