问题标签 [phpredis]

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.

0 投票
1 回答
4830 浏览

php - 如何使用 PHP 5.5 / Ubuntu 12.0.4 配置 PhpRedis

我最近在 LAMP 堆栈上安装了 PhpRedis,并为 Ubuntu 12.0.4 安装了默认的 PHP 5.3。效果很好。

我随后使用 phpbrew 安装了新的 PHP 5.5 beta 2。现在,当我尝试在 PHP 5.5 上运行我的项目时,我收到以下错误:

致命错误:找不到类“Redis”

我尝试将我的 php 5.3 redis.ini 文件复制到 php 5.5 配置并重新启动 Apache:

现在我得到一个额外的错误:

警告:PHP 启动:redis:无法初始化模块 使用模块 API=20090626 编译的模块 使用模块 API=20121212 编译的 PHP 这些选项需要在第 0 行的未知中匹配

同样,PhpRedis 可以在默认的 Ubuntu php 5.3 安装中正常工作,这是使用 apt-get/APT 完成的。

附加信息:

我以前是按照网上 tut 安装 RedisPhp 的:

http://anton.logvinenko.name/en/blog/how-to-install-redis-and-redis-php-client.html

我使用以下内容通过 phpbrew 安装 php 5.5:

https://gist.github.com/fluxsauce/5282006

一如既往,提前谢谢!!!

0 投票
4 回答
34199 浏览

php - PHP Redis超时,连接时读取错误?

“PHP 致命错误:未捕获的异常 'RedisException' 带有消息 '读取连接错误'”

这里的驱动是phpredis

这总是在约 1 分钟后超时。我的 redis.conf 说超时 0 并$redis->getOption(Redis::OPT_READ_TIMEOUT)返回double(0)

如果我这样做,它永远不会超时$redis->setOption(Redis::OPT_READ_TIMEOUT, -1);

为什么我需要-1?Redis 文档timeout 0在 redis.conf 中说永远不应该让我超时。

“默认情况下,如果客户端空闲数秒,Redis 的最新版本不会关闭与客户端的连接:连接将永远保持打开状态。”

0 投票
1 回答
119 浏览

model - Redis 建模和查询

我必须使用 redis 和 phpredis 构建一个存储日志和显示日志的应用程序。

在显示此日志之前,我需要进行排序和查询。

日志模型:

查询示例:

然后结果需要按 id (ASC) 排序。

所以我想知道这是否可能?以及选择什么型号?

我已经尝试过字符串、哈希、集合、列表,但我不能做任何我想做的事情。

0 投票
1 回答
962 浏览

php - Redis + phpredis 丢键——内存溢出?

Redis 新手,使用phpredis客户端在一个只有 512Mb RAM 的小盒子上使用 php 对其进行测试。

将 3m 个整数值插入到一个集合中。但是该sCard()集合的方法仅返回大约 270k 计数。

这是我面临的内存限制吗?插入时如何检查错误?

应用程序:有两个二进制文件存储四字节无符号整数序列,我想将它们加载到 Redis 中以获得快速的内存差异。这是我的插入方法(跳过错误检查行):

因此,在读取了两个 3m 值文件中的第一个后,第一个集合的大小只有 270k 左右,而第二个文件似乎完全错过了 Redis:

紧随其后的 Redis INFO 输出:

0 投票
1 回答
4695 浏览

php - phpredis 管道是否与使用协议进行大量插入相同?

我正在将我网站的某些部分从关系数据库移动到 Redis,并且需要在可能很短的时间内插入数百万个键。

在我的例子中,数据必须首先从 MySQL 中获取,由 PHP 准备,然后添加到相应的排序集中(时间作为分数 + ID 作为值)。Redis::PIPELINE目前我正在使用带参数的 phpredis 多方法。尽管速度显着提高,但它在导入时会阻止读取并减慢加载时间。

那么问题来了 -在 phpredis 中使用管道是否等同于http://redis.io/topics/mass-insert中描述的大量插入?


这是一个例子:

  • phpredis方式:

    /li>
  • 来自 redis.io 的vs协议:

    /li>
0 投票
1 回答
1347 浏览

php - redis lua 脚本调用 redis.call("ZREVRANGE", KEYS[1], start, end, 'WITHSCORES')

我使用 phpredis 扩展,当我调用时:

在 lua 脚本中,它返回

实际上我想返回关联数组:

0 投票
1 回答
1778 浏览

php - 我如何知道会话是否由 redis 成功管理?

我在 my 中设置了我的值,PHP.ini如下所示。Redis 工作,会话工作。现在我真正想知道的是我如何知道会话正在处理和存储在 Redis 中?我到处搜索,但找不到如何验证它与 Redis 一起使用。

我需要能够以某种方式检查会话是否存储在那里。

我的 PHP 信息显示

0 投票
1 回答
1348 浏览

php - 当我获取/转储列表时,redis(PHP)中的 LPUSH 函数抛出 bool(false)

好吧,sooooo ...问题是这样的:我正在将一个变量值LPUSH'ing到一个名为“keys”的列表中。当我尝试获取并输出该列表的值时......它声称该列表为空(bool(false))。语法似乎正确。这段代码在其他场合也有效(事实上,我只是在检查每个函数并测试/重构/改进我已经编写的内容)。我对此感到困惑,我完全感到困惑。这是代码(带有相关注释):

我想念什么疯狂的东西吗?Redis 在我的服务器上经过测试可以正常工作。否则,我无法弄清楚这到底是什么问题。这是关于 LPUSH for phpredis 的文档(这是我们正在使用的(它也已安装和工作)):https ://github.com/nicolasff/phpredis#lpush 以及 Redis 网站上的文档(这些是 CLI示例): http ://redis.io/commands/lpush

真诚感谢任何帮助。也许我正在使用一种无​​效的方法来测试 redis 列表“键”是否保留价值?(这就是转储的全部目的)。

0 投票
1 回答
2198 浏览

redis - redis 中的 ping() 有什么作用?

我们使用具有 10GB RAM 作为缓存服务器和phpredis作为 redis 客户端的 redis 2.6.14。我们都从同一个 redis 服务器写入和读取。

问题是,当流量变高时,我们仍然可以 connect() 这台机器,但是 ping() 会返回 false,是的,只有 false。connected_client 低于 100,used_memory 低于 1GB,qps 约为 1000,这一切看起来都很好。

我们已经检查了我们所知道的几乎所有内容,除了 ping() 在 phpredis/redis 中做了什么?在什么情况下 ping() 会返回错误?显然,当 ping() 错误时,我们的机器仍然可以连接。 https://github.com/nicolasff/phpredis#ping

任何想法?

我通过从 connect() 切换到 pconnect() 解决了这个问题;

0 投票
1 回答
388 浏览

redis - zrange中字典顺序的选项?

当我使用 zincrby 为键添加分数时,它会增加分数并将元素按字典顺序排列。

我可以按更新或添加元素的顺序获取此列表吗?

例如>

如果我执行

接着

那么结果是

在哪里,我希望结果按照条目的顺序排列,

由于所有分数都相同,redis 将元素按字典顺序排列。有什么办法可以预防吗?