问题标签 [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 投票
3 回答
1906 浏览

php - 在 Redis 上安全地存储 PHP 会话的身份验证密钥

假设一个站点正在使用 redis(远程)存储会话数据,并且该 redis 存储受 auth 密钥保护

所以在 php.ini 中,使用 phpredis,它被设置为:

有什么办法可以让这更安全一点吗?服务器上运行 phpinfo() 的任何人;可以看到身份验证字符串...

0 投票
1 回答
2145 浏览

php - phpRedis 迁移到集群和一致性哈希

我们目前正在使用PhpRedis扩展,我们的代码是Redis使用PhpRedis. 但是现在我们正在迁移到一个 redis 集群。

是否可以使用类 Redis 连接到 redis 集群?还是我们需要重新编写代码并使用类 RedisArray?

我们也需要有一致的散列。我们已经添加了这样的键,{user}:1以便我们以后可以进行一致的散列。

主要问题是使用该类编写的所有代码Redis并将其更改为RedisArray.

我是redis的新手,所以请提供一些建议

谢谢

0 投票
3 回答
2570 浏览

php - 使用redis实现消息队列出错,使用BLPOP出错

我正在尝试使用 Redis 构建消息队列。每当客户端发送新数据时,它们都会被添加到列表中。

这是它的代码

现在有一个单独的脚本slave.php弹出新到达的数据并对其进行处理。slave.php 的代码

我已经修改了 apache 启动脚本,以便 slave.php 应该使用 apache 启动和停止。它运作良好。但是在等待几分钟后,brPop 停止侦听并显示如下错误消息:

根据文档,如果 list 为空,则 BLPOP/BRPOP 会阻止连接,直到另一个客户端对其中一个键执行 LPUSH 或 RPUSH 操作。但这在我的情况下没有发生。在我的情况下,一旦 brpop 阻止连接,即使新数据到达列表中,它也不会再次收听。

我应该进行哪些更改才能使其正常工作?

0 投票
1 回答
679 浏览

php - 使用 phpredis - ubuntu 12.04

我正在尝试安装 phpredis 库以在我的 php 脚本中使用 redis。我按照这里的说明https://github.com/nicolasff/phpredis,也运行了 apache 使用的脚本。/etc/php5/cli/conf.d我在其中添加了一个 redis.ini 文件extension=redis.so。我检查了它redis.so是否存在于/usr/lib/php5/20090626其他图书馆等mysql.so也存在的地方。Mysql 在 php 中运行良好,但是当我尝试使用 php redis 时,

$redis = new Redis();

此调用不会返回,此语句之后的任何内容都不会执行。

PS:我对 php、ubuntu、redis 等比较陌生。

编辑:我只需要重新启动 apache 服务器。问题可以关闭。

0 投票
3 回答
34452 浏览

php - 如何使用 php redis 获取 redis 中的所有键?

我正在使用https://github.com/nicolasff/phpredis 扩展来访问 redis。我想从 PHP 代码中获取 redis 中的所有键。我尝试了以下代码:

但是在 shell 中执行以下命令会给出结果:

我可以通过 PHP 脚本以下列方式设置密钥和数据:

如何KEYS *使用 phpredis 从 redis 获取?

0 投票
3 回答
46562 浏览

redis - Redis如何存储关联数组?设置或散列或列表?

我对 Redis 的所有可用存储选项有点困惑。我想做一些简单的事情,我不想过度设计它。我正在使用phpredisRedis v2.8.6

我有一个需要存储的简单关联数组。我还需要能够通过其键检索项目并遍历所有项目。

所以到目前为止我所做的是使用hash类型。像这样存储我的数组:

像这样我可以像这样轻松访问密钥:

但是现在我需要遍历所有我不知道该怎么做的帖子,以及我是否可以用我目前的结构来做。我不知道是否需要将所有内容存储post_id在另一个列表中以便能够遍历所有帖子?

所以我的问题是我应该使用哪种数据类型来存储我的帖子列表,允许我通过其 id 获取单个帖子并遍历所有帖子?

谢谢,马克西姆

0 投票
2 回答
4043 浏览

redis - 如何对 SET 进行排序并获取完整的 HASH

我是 Redis 的新手,我不得不说我喜欢它直到现在 :)

我遇到了一个问题,我不确定如何以更有效的方式解决它。我有一个SETHASH每个HASH描述一个帖子。

这是创建和存储的代码HASH

现在,以前我将所有帖子的属性存储在(json_encoded) 的一个data字段中HASH,我正在获取如下信息:

它工作得很好,我有所有的帖子信息:)

但是我在 Redis 中更新帖子时遇到了冲突(并发更新),所以我决定将所有帖子的属性分开fieldsHASH它解决了我的冲突问题。

现在我遇到的问题是HASH从我的SET. 我是否必须像这样指定每个字段:

还是有另一种方法可以HASH直接在SET?

我听说过,pipeline但我不确定它是否是我正在寻找的东西,以及我是否可以使用它phpredis

干杯,马克西姆


更新

我不确定我是否清楚地解释了自己。我在一组 ( post_id) 中有一些元素。我想获得 的前 10 个帖子SET,这意味着我想要 10 个hash(及其所有字段和值)来构建一个post对象。

我以前将所有对象信息存储在哈希 ( data) 的一个字段中,现在我每个对象的属性都有一个字段。

前:

myHash:<id> data

现在:

myHash:<id> id "1234" created "2010-01-01" author "John"

在我SORT用来获取前 10 个帖子(并且很容易分页)之前,如下所示:

现在我的哈希中有 X 个成员,我想知道最好的解决方案是什么。

是吗:

或者可能:

或者最后:

或者还有什么我还不知道的?最好、更快的方法是什么?

0 投票
1 回答
1280 浏览

makefile - 使用 pecl 在 osx 上安装 phpredis

phpredis我在 Mac OSX Maverics 上安装时遇到了一些问题。

我确实已经redis server安装并运行了。我曾经sudo pecl install redis安装过phpredis。现在,当我这样做时,出现了这样的情况:

这是怎么回事?由于缺少 php.h 文件,像 make 这样的接缝失败。但是为什么会这样,我该如何解决呢?

0 投票
1 回答
1238 浏览

php - 在redis中存储大量数据时内存不足

我正在尝试在 PHP Redis ( Predis ) 中执行此查询:

这段代码需要很长时间,但它不应该耗尽内存,此外,我已经编辑了我的php.ini文件并更改memory_limit5000M

但是,在更改之后,我仍然收到此错误:

致命错误:允许的内存大小 xxxxxxxxxxxx 已用尽。

0 投票
1 回答
2852 浏览

php - redis 服务器每 5 分钟崩溃一次

我正在使用 phpredis 设置一个哈希条目,它从 mysql 中提取数据;因为我正在将一些数据从我的 MySQL 数据库迁移到 redis 以便更快地访问,因为我在 redis 中所做的数据/更改量很大(4 GB),它每 5-10 分钟(变量)后崩溃。

日志说:

这让我一次又一次地重新启动 redis,这非常痛苦,我已经将 vm.overcommit 设置为 1。

我在 Ubuntu 12.04 LTS 上使用具有 1.6 GB RAM 的 AWS ec2 小型实例。

请给我一些聪明的解决方案。

提前致谢。