问题标签 [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 - 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的东西,我怀疑我只是在寻找错误的方向
所以问题是,如果没有人能指出我的方向,这是否是正确的方向。
php - 如何使用 Predis 和 redis-cli 连接到同一个 redis db?
在玩 redis 时,我注意到,与 Predis 和 redis-cli 连接会导致不同的键空间,它们都名为 db0。两个连接都连接到在 tcp://localhost:6379 上运行的 redis 服务器。我可以看到转储也位于不同的位置。
这是两个实例的信息:
从 redis-cli :信息服务器
和
来自 predis,信息
redis - 从 Redis 读取多个哈希的最快方法是什么?
我有一个LIST
包含指向某些HASH
数据的指针。就像是:
收到此请求后:
我执行以下操作:
所以我最终得到:1xlrange
电话,然后$request->articles
是hgetall
电话数量。请问什么是最快的解决方案?
我想过:
做HMGET
执行 MULTI/EXEC
使用 LUA 编写此功能并在单个命令中获取它们。
有任何想法吗?
php - Predis 自动加载器无法加载
我使用 composer 将外部库添加到我的项目中——包括 Predis。
出于某种原因,可能没有生成 Predis,我总是收到:
所以我潜入作曲家加载文件并发现一些奇怪的东西如下:
这是我的composer.json:
现在,我想看看为 Predis 生成的命名空间是什么样子的,所以我检查了 composer 文件夹中的 autoload_par4.php,它是这样的:
现在,如果您注意到,您会看到 Predis 命名空间路径是/predis/predis/PicoCore
(PicoCore 是我的应用程序命名空间)当它应该是
/predis/predis/src
当我手动更改它时 - 它工作正常,但问题是每当我更新作曲家时,它都会再次这样做..
任何想法为什么或从哪里采用路径以及为什么添加我的项目名称?
顺便说一下,我查看了predis的composer.json并对其进行了更改,现在它看起来如下:
php - Predis:两种集群策略的优缺点
我正在使用 Predis 连接到 Redis 3.0.2 集群。所以,我可以选择使用其中之一predis
或redis
集群策略。我想知道选择其中一个而不是另一个有什么显着的利弊?
根据我浏览文档的过程,我想到了以下几点,但我不确定我的理解是否正确:
使用
redis
策略时,我们不必在建立连接时列出集群的每个节点。参考(可能是专业人士:))使用 redis-cluster 时,不必传递组成集群的所有节点,但您只需指定几个节点即可
上面链接的文章的下一行说:
Predis 将通过联系其中一台服务器直接从 Redis 自动获取完整和更新的插槽映射。
就性能而言,这可能是一个骗局吗?因为 Predis 在决定选择哪个节点进行当前读/写操作之前需要从服务器获取一些数据?
语境:
我们计划使用 Redis 来存储 PHP 会话。它是一个 AJAX 繁重的 Web 应用程序,在高峰时段拥有数千名活跃用户。这就是为什么我们希望将负载分散到多个 Redis 节点上。我们很乐意在连接建立代码中手动维护服务器地址列表,以便使用策略,如果与此特定用例predis
的策略相比,它有望提供明显更好的性能。redis
redis - predis:带有 NX 的 ZADD 不断抛出错误“Predis\ServerException”
当我尝试将“NX”添加到 predis 上的 zadd 命令时遇到问题。redis 文档说 ZADD 应该支持 NX,但是无论我如何设置 predis 命令,我都无法让它工作。有没有人有这个问题的经验?
以下是我尝试过的命令:
这是不断抛出的错误:
查看 redis-cli 监视器,我看到使用 ZADD 命令时执行命令,但 executeRaw 命令什么也不做。
任何帮助将不胜感激!
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。
redis - 如何通过predis刷新所有redis节点?
我正在尝试测试我的缓存是用 redis 集群实现的(由服务器而不是客户端集群)。每次运行单元测试时,我都必须刷新 redis。当我尝试运行 flushdb 命令时出现此错误:无法将“FLUSHDB”与 redis-cluster 一起使用。似乎只有在设置插槽时才能在集群模式下运行 flushdb 命令,但我不知道该怎么做。(我已经覆盖了 laravel 的 redis 包装器,所以 laravel 不是这种情况如果你学习我如何使用 predis,我可以将它与 laravel 一起采用)
php - Redis SCARD 返回错误的结果?
我正在将大量数据点添加到 redis 集中:
当我打电话时,redis->scard('database/ab/AL')
我得到了结果9832
,我应该得到的答案是9866
$t
是我放入的一个计数器,用于检查循环正在执行多少次迭代,并且$t
是9866
在运行循环之后,考虑到 scard 正在返回,这很奇怪9832
然后我想可能会添加重复项,所以我记录了来自sadd
整个日志中没有零,这意味着添加的每个元素都是唯一的。还有一些与结果9866
相矛盾的日志调用scard
。我尝试使用 redis-cli 检查,但仍然得到错误的结果。是什么赋予了?
php - 作曲家更新后命名空间“Predis\Profile”中的 SncRedisExtension Factory 中的 ClassNotFoundException
今天更新作曲家包后,我收到错误消息。
这个配置工作了一段时间——现在停止,我这边没有任何变化。
这是我的 Composer.json 包
可能是什么原因?我在 github 中看到了这个文件->
https://github.com/nrk/predis/tree/v1.0/src/Profile
但它没有在作曲家更新时下载
这是文件列表