lamoda / redis-sentinel
此包已被弃用且不再维护。未建议替代包。
redis-sentinel 或纯 redis 的配置包装器
0.3
2022-02-08 08:43 UTC
Requires
- php: >=7.1 | >=8.0
- jamescauwelier/psredis: ^1.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.14
- phpunit/phpunit: ^7.0 | ^9.0
This package is auto-updated.
Last update: 2023-06-08 11:29:17 UTC
README
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