php - 是否可以有两个 Predis 连接到同一 Redis 实例的不同数据库?

标签 php redis predis

我试图在同一个 PHP 脚本上创建两个 Predis\Client 实例,以分隔属于不同逻辑域的数据。

我这样做:

$param1 = [
    'host'     => 'localhost',
    'port'     => 6379,
    'database' => 1,
];

$param2 = [
    'host'     => 'localhost',
    'port'     => 6379,
    'database' => 3,
];

[... some code ...]

$redis1 = new Predis\Client($param1);
$redis2 = new Predis\Client($param2);

问题是这样的:

  • $redis1 正确地将数据存储到数据库 1
  • $redis2 将数据存储到数据库 0 而不是 3

你知道为什么会发生这种情况吗?

最佳答案

使用new实例化客户端:

$redis1 = new Predis\Client([
    'host'     => 'localhost',
    'port'     => 6379,
    'database' => 1,
]);

$redis2 = new Predis\Client([
    'host'     => 'localhost',
    'port'     => 6379,
    'database' => 3,
]);

关于php - 是否可以有两个 Predis 连接到同一 Redis 实例的不同数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42594627/

相关文章:

java - 如何用spring在redis的缓存中创建文件夹?

Nginx——从redis中读取值并将其存储到变量中

php - 有 Predis 文档吗?

redis - 如果我在主 Redis 实例上运行长事务或 Lua 脚本,它会阻塞只读从属实例吗

php - Composer 更新后来自命名空间 "Predis\Profile"的 SncRedisExtension Factory 中的 ClassNotFoundException

php - while 循环打印额外的空行

php - Joomla 包括数据库功能

PHP 三进制 : Inline if statement

php - Laravel 注册错误

redis - redis有没有一个函数可以执行带有上限和下限的zincrby?