问题标签 [predis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 有 Predis 文档吗?
我正在使用 phpredis,现在我也在为我的 php 应用程序尝试 predis,但我找不到第二个的好文档。github中有一个“如何使用”,但我觉得它很短。不过,我检查了这些示例,发现它们使用“小写”字符的Redis 命令。我尝试了一些并且它有效,但我不想尝试所有这些来看看这是不是真的......
yii - Predis Aysnc 怀疑
有人告诉我,如果我想使用 predis-async,那么我将使用某种异步 Web 框架(可能使用https://github.com/reactphp/react构建)。我目前正在使用 Yii。
我也被告知
该行将启动事件循环,在终止与 Redis 的所有连接并调用所有回调后,该循环不会返回。所以这意味着这条线将阻塞你的代码。尝试运行以下代码(说明 Predis Async 用法的最简单代码):
END 可能不会显示很长时间,也可能永远不会显示,但肯定会比使用非异步 Predis 执行相同的操作更多。
但是,我自己的理解是,现有的 PHP 系统应该能够开箱即用地使用 Predis Async 作为库。这意味着现有的 PHP 系统不需要在 ReactPHP 上。我使用 predis async 的想法类似于使用 mongodb 异步提交。当 PHP 调用 mongodb lib 提交写操作时,它是异步的。Mongodb 立即返回调用,而不是等待写入发生。在这种情况下,mongodb 也不需要异步 php 框架。
是不是真的
END 可能不会显示很长时间,也可能永远不会显示,但肯定会比使用非异步 Predis 执行相同的操作更多。
php - Predis 别名分片
我正在尝试通过别名使用 Predis 分片,如此处所述。我的代码基本相同,但我只返回空数组。我的哈希键周围需要 {} 吗?(编辑:不,刚刚尝试过)
编辑:如果我只在$servers
阵列中放置一台服务器,它也可以工作。因此,散列似乎无法正常工作。当我在返回值前面抛出一些回声时,nodehash
我可以看到它正在返回别名。
php - Predis Null 批量回复
嘿伙计们!我正在对 Predis 进行乐观锁定。问题是 Redis 文档说,当被监视的键被修改时,执行返回一个“Null Multi-bulk reply”。它在 Predis 中看起来如何?可悲的是,我没有找到任何有用的 Pedis 文档(不包括非常基本的教程)。
这是我的代码目前的样子:
只要它返回false,我就会调用该函数。
php - 如何将 ZINCRBY 与 predis 一起使用
我正在使用 Predis 连接到 Reddis 服务器,并尝试使用 ZINCRBY。rawcommand 显然不再受支持,我无法让以下工作:
php - 将 predis 故障转移到 redis 从站的最佳方法是什么?
检测redis服务器是否不可用并故障转移到从属服务器的最佳方法是什么?
当然,这应该是及时有效的。我将它用于集中式 PHP 会话变量存储。
我在nrk/predis 存储库上看到了这个示例,但我相信它仅用于分片,而不用于故障转移/复制情况?
TL;DR — 如果主服务器不可用,我希望我的基于 redis 的 PHP 会话故障转移到从属 redis 服务器。
帮助?
json - Predis 不保存部分 JSON 字符串
我正在尝试使用 Predis 库将 Cakephp 中 $_SESSION 的 JSON 表示(json_encode)保存到 Redis 中。
这是 $_SESSION 原始数据:
json_decode 之后:
redis的相关代码设置值:
当我在调用 set 后检查 redis 时,只保存了这部分:
其余的 JSON 数据被截断/不保存到 redis。这可能是什么问题?在将 JSON 设置为 redis 的过程中我有什么遗漏吗?
php - 在 Predis 中使用 hmset 的问题
我在使用$predis->hmset()
. 我需要使用哪些参数?我尝试了许多变体,但没有成功。
php - 使用 Predis 进行会话存储时出现 500 错误
我正在使用 Predis 将我的 PHP 会话数据存储在 Redis 中。
我的网站有页面可以进行多个 ajax 调用,每个页面都将通过连接到 Redis 会话存储以查找会话变量在 PHP 中进行身份验证。
我收到零星的 500 错误,我认为这可能是因为我的 PaaS 只允许 6 个并发 Redis 连接。我认为这是因为当我进行> 6 个并发 ajax 调用时,它最常发生。
这是典型的错误:
[2013 年 7 月 26 日星期五 17:25:53] [错误] [客户端 10.0.64.59] PHP 致命错误:未捕获的异常 'Predis\Connection\ConnectionException' 并带有消息 'Error while writing bytes to server [tcp://10.0. 27.46:5058]' 在 /mnt/var/vcap.local/dea/apps/funnelplus-reports1-3-7416a344cc658624070a91d745d342d/app/_includes/Predis/Connection/AbstractConnection.php:139\n堆栈跟踪:\n#0 /mnt /var/vcap.local/dea/apps/funnelplus-reports1-3-77416a344cc658624070a91d745d342d/app/_includes/Predis/Connection/StreamConnection.php(189): Predis\Connection\AbstractConnection->onConnectionError('写入时出错... ')\n#1 /mnt/var/vcap.local/dea/apps/funnelplus-reports1-3-77416a344cc658624070a91d745d342d/app/_includes/Predis/Connection/StreamConnection.php(294): Predis\Connection\StreamConnection->writeBytes ('*4??$5??SETEX??...')\n#2 /mnt/var/vcap.local/dea/apps/funnelplus-reports1-3-77416a344cc658624070a91d745d342d/app/_includes/Predis/Connection/AbstractConnection.php(119): Predis\Connection\StreamConnection->writeCommand(对象(Predis\Command\StringSetExpire))\n#3 /mnt/var/vcap.local/dea/apps/funnelplus-reports1 在 /mnt/var/vcap.local/dea/apps/funnelplus-reports1-3-77416a344cc658624070a91d745d342d /app/_includes/Predis/Connection/AbstractConnection.php 第 139 行,引用者:local/dea/apps/funnelplus-reports1-3-77416a344cc658624070a91d745d342d/app/_includes/Predis/Connection/AbstractConnection.php 在第 139 行,引用者:local/dea/apps/funnelplus-reports1-3-77416a344cc658624070a91d745d342d/app/_includes/Predis/Connection/AbstractConnection.php 在第 139 行,引用者:http://www.domain.com/funnels?funnel=8
有没有办法强制 Predis 将这些排队而不是简单地抛出 500,或者有更好的方法来验证这些 ajax 调用?
我将 Redis 用于会话,因为该应用程序在多个实例之间进行了负载平衡。
php - 高流量站点的 Predis 超时
我正在运行一个流量峰值很高的网站(大约 10k 在线用户),当网站超过 7k 在线用户时,我在 Predis 上遇到这个错误:
服务器是 Intel Xeon 3.4GHz、32GB RAM 和 SSD 磁盘,带有用于静态内容的 nginx、apache 和 mysql。内存消耗从未超过 9GB,峰值 CPU 负载为 4。
我没有看到 PHP 出现内存错误,MySQL 也没有消失,只有这个 Redis 错误。我没有运气就把超时 0 和 ?read_write_timeout=0 放了。你能帮助我吗?
谢谢和对不起我的英语!