Laravel 对 Redis 进行单独的读/写操作?

Mev*_*mir 7 redis laravel

我有一个在 Kubernetes 中运行的 Redis 集群。一个Redis集群只能有1个主和N个从。Laravel 内部是否可以有多个 Redis 连接进行读写?所以我可以写主站并从从站读取。“普通”数据库是可能的:

'mysql' => [
  'read' => [
     'host' => ['192.168.1.1'],
   ],
  'write' => [
     'host' => ['196.168.1.2'],
   ],
  '....'    => .....
]
Run Code Online (Sandbox Code Playgroud)

有没有办法为Redis实现这一目标?

谢谢,

sam*_*sam 5

您可以更改与connection将返回 Redis 实例的方法一起使用的连接,例如:

$redis = Redis::connection('read');
$redis->get('example');
Run Code Online (Sandbox Code Playgroud)

您将以与 MySQL 相同的方式配置不同的连接。

'redis' => [

    'client' => 'predis',

    'default' => [
        'host' => env('REDIS_HOST', 'localhost'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => 0,
    ],

    'read' => [
        'host' => env('REDIS_HOST', 'localhost'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6380),
        'database' => 0,
    ],

],
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回答,我正在寻找一种更简单的实现,而无需选择要使用的连接的“开销”。我认为这是目前唯一的解决方案。 (2认同)