lamoda/redis-sentinel

此包已被弃用且不再维护。未建议替代包。

redis-sentinel 或纯 redis 的配置包装器

0.3 2022-02-08 08:43 UTC

This package is auto-updated.

Last update: 2023-06-08 11:29:17 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Build Status

Redis 配置包装器,用于与 redis sentinel 或纯 redis 服务器一起使用。当未定义 sentinel(例如在开发/测试环境中)时,用于获取 sentinel 或纯 redis 的连接设置。

使用示例

use Lamoda\RedisSentinel\RedisLocator;

$redisLocator = new RedisLocator(
    // plain redis:
    [
        'protocol' => 'tcp',
        'host' => 'redis-host',
        'port' => 6379,
        'dbindex' => 0,
        'connectionName' => uniqid('client-app', true),
    ],
    // redis sentinel:
    [
        'url' => 'redis-sentinel1:26379; redis-sentinel2:26379',
        'redisName' => 'mastername',
    ]
);

// Discover current sentinel master:
$redisConfig = $redisLocator->getRedisConfig();

$redis = new \Redis();
$redis->connect($redisConfig->getHost(), $redisConfig->getPort());
$redis->client('setname', $redisConfig->getConnectionName());
$redis->select($redisConfig->getDbIndex());

如果没有 sentinel

$redisLocator = new RedisLocator(
    // plain redis:
    [
        'protocol' => 'tcp',
        'host' => 'redis-host',
        'port' => 6379,
        'dbindex' => 0,
        'connectionName' => uniqid('client-app', true),
    ],
    // redis sentinel:
    [
        'url' => '',
        'redisName' => 'mastername',
    ]
);

// Return plain redis config:
$redisConfig = $redisLocator->getRedisConfig();

本地使用 docker-compose

您可以使用 docker-compose 文件来简化本地 sentinel 的使用和测试。

启动 redis-sentinel 容器

docker-compose -f docker/docker-compose.yml up -d

或使用 make

make up
# ...
make down