php - 如何在 Predis 中使用前缀?

标签 php redis predis

我正在使用nrk/predis用于在我的 PHP 脚本中处理 Redis 客户端。

我正在尝试为此客户端中使用的所有键设置前缀:

$client = new Predis\Client([
    'scheme'    => 'tcp',
    'host'      => REDIS_IP,
    'port'      => REDIS_PORT,
    'password'  => REDIS_PASS,
    'database'  => REDIS_DB,
    'prefix'    => REDIS_PREFIX
]);

这应该像他们的 client configuration 中所述那样工作。 .

但是 $client->exists("mykey") 返回 false,而 $client->exists(REDIS_PREFIX . "mykey") 返回 true。

当然,我的目标是仅使用 $client->exists("mykey")

我检查了终端, key 看起来没问题。 (我已手动插入条目)

最佳答案

prefix 选项放入新数组中,作为连接函数的第二个参数。我的猜测是(查看您链接的文档后) prefix 不属于 new Predis\Client() 的第一组连接参数,而是属于第二个参数for(options 参数)。

将代码更改为:

$client = new Predis\Client([
    'scheme'    => 'tcp',
    'host'      => REDIS_IP,
    'port'      => REDIS_PORT,
    'password'  => REDIS_PASS,
    'database'  => REDIS_DB
], [
    'prefix'    => REDIS_PREFIX
]);

这应该允许您调用 $client->exists('mykey'); 并且它将使用 REDIS_PREFIX 中给定的前缀

关于php - 如何在 Predis 中使用前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47875298/

相关文章:

php - Instagram 实时更新标签 - 回调调用两次?

php - 如何使用 Predis 和 redis-cli 连接到同一个 redis 数据库?

php - 在 Windows 中从 Laravel 项目中删除 Redis

php - 对不同值的实例求和并合计它们的价格

php - 在 MySQL 中缩放递增计数器(用于跟踪页面浏览量)

php - 正则表达式匹配联系人组

laravel-5 - 使用 laravel、Socket 和 Redis 动态更改 channel

node.js - 对于 Node/Mongo/NginX,哪种缓存方法最快/最轻?

java - 有没有办法让 eclipselink/JPA 使用 redis 来保存和检索持久性单元级 (L2) 缓存?

json - 如何使用 Laravel 和 Predis 从 JSON 输出中更新或删除记录