问题标签 [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.

0 投票
2 回答
4508 浏览

php - Redis 哨兵实现

我们有一个设置:
2 个 php 服务器
2 个作为主/从运行的 redis 服务器
1 个日志服务器,它将所有类型的日志存储在 elastcisearch

我们想为 redis 服务器实现自动故障转移,现在在 php 服务器 redis 主地址 ir 硬编码。

在日志服务器中,它有一个带有来自 master 的 redis 输入的 logstash 实例,它也在 logstash 配置中进行了编码。

我们已经在两个 redis 服务器上安装了 redis sentinel,它工作正常。

但问题是如何掌握 php 和 logstash 或者这不是正确的方法。

对于 php,我找到了这个客户端包装器https://github.com/Sparkcentral/PSRedis

但是还没有找到任何关于logstash的东西,我怀疑我只是在寻找错误的方向

所以问题是,如果没有人能指出我的方向,这是否是正确的方向。

0 投票
2 回答
533 浏览

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

在玩 redis 时,我注意到,与 Predis 和 redis-cli 连接会导致不同的键空间,它们都名为 db0。两个连接都连接到在 tcp://localhost:6379 上运行的 redis 服务器。我可以看到转储也位于不同的位置。

这是两个实例的信息:

从 redis-cli :信息服务器

来自 predis,信息

0 投票
2 回答
2413 浏览

redis - 从 Redis 读取多个哈希的最快方法是什么?

我有一个LIST包含指向某些HASH数据的指针。就像是:

收到此请求后:

我执行以下操作:

所以我最终得到:1xlrange电话,然后$request->articleshgetall电话数量。请问什么是最快的解决方案?

我想过:

  1. 做HMGET

  2. 执行 MULTI/EXEC

  3. 使用 LUA 编写此功能并在单个命令中获取它们。

有任何想法吗?

0 投票
1 回答
1610 浏览

php - Predis 自动加载器无法加载

我使用 composer 将外部库添加到我的项目中——包括 Predis。

出于某种原因,可能没有生成 Predis,我总是收到:

所以我潜入作曲家加载文件并发现一些奇怪的东西如下:

这是我的composer.json:

现在,我想看看为 Predis 生成的命名空间是什么样子的,所以我检查了 composer 文件夹中的 autoload_par4.php,它是这样的:

现在,如果您注意到,您会看到 Predis 命名空间路径是/predis/predis/PicoCore

(PicoCore 是我的应用程序命名空间)当它应该是

/predis/predis/src

当我手动更改它时 - 它工作正常,但问题是每当我更新作曲家时,它都会再次这样做..

任何想法为什么或从哪里采用路径以及为什么添加我的项目名称?

顺便说一下,我查看了predis的composer.json并对其进行了更改,现在它看起来如下:

0 投票
1 回答
714 浏览

php - Predis:两种集群策略的优缺点

我正在使用 Predis 连接到 Redis 3.0.2 集群。所以,我可以选择使用其中之一predisredis集群策略。我想知道选择其中一个而不是另一个有什么显着的利弊?

根据我浏览文档的过程,我想到了以下几点,但我不确定我的理解是否正确:

  1. 使用redis策略时,我们不必在建立连接时列出集群的每个节点。参考(可能是专业人士:))

    使用 redis-cluster 时,不必传递组成集群的所有节点,但您只需指定几个节点即可

  2. 上面链接的文章的下一行说:

    Predis 将通过联系其中一台服务器直接从 Redis 自动获取完整和更新的插槽映射。

就性能而言,这可能是一个骗局吗?因为 Predis 在决定选择哪个节点进行当前读/写操作之前需要从服务器获取一些数据?

语境:

我们计划使用 Redis 来存储 PHP 会话。它是一个 AJAX 繁重的 Web 应用程序,在高峰时段拥有数千名活跃用户。这就是为什么我们希望将负载分散到多个 Redis 节点上。我们很乐意在连接建立代码中手动维护服务器地址列表,以便使用策略,如果与此特定用例predis的策略相比,它有望提供明显更好的性能。redis

0 投票
1 回答
1778 浏览

redis - predis:带有 NX 的 ZADD 不断抛出错误“Predis\ServerException”

当我尝试将“NX”添加到 predis 上的 zadd 命令时遇到问题。redis 文档说 ZADD 应该支持 NX,但是无论我如何设置 predis 命令,我都无法让它工作。有没有人有这个问题的经验?

以下是我尝试过的命令:

这是不断抛出的错误:

查看 redis-cli 监视器,我看到使用 ZADD 命令时执行命令,但 executeRaw 命令什么也不做。

任何帮助将不胜感激!

0 投票
1 回答
1984 浏览

php - redis pub/sub 订阅返回连接错误

我在 Laravel 5.1 上并遵循此处的指南:http: //laravel.com/docs/5.1/redis#pubsub

我创建了一个简单的 socket.io 服务器,在客户端我向我的频道发送了一条消息,socket.io 服务器能够记录该消息。

但是,我运行了我为 redis pub/sub 制作的命令,当客户端发出消息时它没有收到任何内容。过了一会儿,抛出一个错误:

[Predis\Connection\ConnectionException] 从服务器读取行时出错。[tcp://127.0.0.1:6379]

然后我尝试在命令中使用发布方法,它可以工作。socket.io 服务器能够记录消息。

这是我的控制台命令

试试看

我在 Laravel 中使用 predis/predis 来支持 Redis。

0 投票
1 回答
2741 浏览

redis - 如何通过predis刷新所有redis节点?

我正在尝试测试我的缓存是用 redis 集群实现的(由服务器而不是客户端集群)。每次运行单元测试时,我都必须刷新 redis。当我尝试运行 flushdb 命令时出现此错误:无法将“FLUSHDB”与 redis-cluster 一起使用。似乎只有在设置插槽时才能在集群模式下运行 flushdb 命令,但我不知道该怎么做。(我已经覆盖了 laravel 的 redis 包装器,所以 laravel 不是这种情况如果你学习我如何使用 predis,我可以将它与 laravel 一起采用)

0 投票
1 回答
385 浏览

php - Redis SCARD 返回错误的结果?

我正在将大量数据点添加到 redis 集中:

当我打电话时,redis->scard('database/ab/AL')我得到了结果9832,我应该得到的答案是9866

$t是我放入的一个计数器,用于检查循环正在执行多少次迭代,并且$t9866在运行循环之后,考虑到 scard 正在返回,这很奇怪9832

然后我想可能会添加重复项,所以我记录了来自sadd

整个日志中没有零,这意味着添加的每个元素都是唯一的。还有一些与结果9866相矛盾的日志调用scard。我尝试使用 redis-cli 检查,但仍然得到错误的结果。是什么赋予了?

0 投票
1 回答
4114 浏览

php - 作曲家更新后命名空间“Predis\Profile”中的 SncRedisExtension Factory 中的 ClassNotFoundException

今天更新作曲家包后,我收到错误消息。

这个配置工作了一段时间——现在停止,我这边没有任何变化。

这是我的 Composer.json 包

可能是什么原因?我在 github 中看到了这个文件->

https://github.com/nrk/predis/tree/v1.0/src/Profile

但它没有在作曲家更新时下载

这是文件列表