问题标签 [hiredis]

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 回答
26124 浏览

c - 加载共享库时出错,无法打开共享对象文件:没有这样的文件或目录(hiredis)

我正处于编写后端使用 redis 的 C 程序的 alpha 阶段。

我已经尝试构建/安装hiredis(make && sudo make install)并运行测试(大部分都通过了),但是在尝试构建example.c程序时,我收到一个找不到hiredis.h的错误。

在命令行上构建: gcc -v example.c -lhiredis -I /usr/local/include/hiredis/

我尝试过的事情:

  1. pkg-infohiredis 返回 0
  2. 通过 (make && ./hiredis-test && sudo make) 和 (make clean) 卸载/重新安装
  3. 在与hiredis.c 和hiredis.h 相同的目录中构建example.c(仍然没有此类文件或目录)
  4. gcc -v example.c -l hiddenis -I /usr/local/include/hiredis/ (以及其他变体)

一切都没有运气。

我猜我没有为 gcc 正确链接程序,但文档没有任何构建示例。

我做错了什么,不会让我使用hiredis构建这个代码(或任何代码)?

确切的输出是......

这会产生一个 a.out。尝试运行该程序时。我收到以下错误。

0 投票
1 回答
595 浏览

redis - 带有libev和pthread的异步hiredis,我做错了什么?

我正在为一个小型单色显示器编写一个 GUI,我想每秒更新一次屏幕上的数据。

数据存储在 redis 数据库中,我正在尝试使用 pthread、libev 和异步hiredis 调用进行协调。

我的计划是有一个线程每秒从数据库中提取新数据并存储一个本地副本以便快速访问。

另一个更新屏幕的线程将随意访问该数据,而无需等待数据库访问。

第一个问题,我的方法正确吗?

第二个问题,为什么我无法每秒轮询数据库?我想我可以切换到同步方法并让它工作,但这是正确的方法吗?

以下是相关代码:

在下文中,如果我ev_loop(EV_DEFAULT_ 0);在 redisAsync 命令之后移动到 while 循环内,我的回调将在第一个循环中被调用,但再也不会调用。它的坐姿,我的回调永远不会被调用。

0 投票
0 回答
878 浏览

python - 在 windows 上使用 channels_redis

我正在尝试遵循这个基本的 django 频道教程,我已经有了一个很好的开始。我能够成功连接到我的 websocket,并且我的消费者在收到消息时正确地回显到前端。

本教程的下一部分将重点介绍如何使用channels_redis以允许多个通道都接收相同的消息,以便不同的客户端实例可以通过 websockets 相互通信。

在教程中他们说要运行

pip3 install channels_redis

如果失败,他们不会详细说明或提供任何故障排除。

当我在我的 Windows 机器(Python 3.7 32bit)上运行此命令时,我得到以下堆栈跟踪:

这似乎是一个依赖的问题hiredis。在网上搜索我发现其他人在 Windows 上使用hiredis时遇到了麻烦,但解决方案并不多。

所以我的问题是:是否可以channels_redis在 Windows 上使用该软件包?我知道 windows 显然不能成为最好的生产部署环境,但我不打算在 windows 服务器上部署。在这一点上,我只是尝试遵循一个基本教程并构建一个能够进行 websocket 通信的简单概念验证应用程序。我没有在我的开发机器上使用 Linux 的选项,所以我专门寻找基于 Windows 的解决方案。

编辑附加信息:

  • Windows 7的
  • 蟒蛇 3.7
  • 姜戈 2.1
  • 频道 2.1.3
  • 我确实安装了 Microsoft Build Tools
0 投票
0 回答
69 浏览

redis - 功能测试和 rspec 的不同配置

从 4.2 更新到 5.2 后,我遇到了一个奇怪的问题。我的功能测试需要以下配置才能运行

使用上面的配置,对于需要以下配置的模型测试,我得到错误未知服务

或者

通过这些配置,我得到功能测试超时错误。不奇怪吗?gemfile.lock 中的一些内容

0 投票
0 回答
251 浏览

javascript - 带有 webpack 的节点 JS

我正在尝试创建一个身份验证模块来使用 node_redis记录和验证用户令牌。但是,当我将它添加到我的主 Node JS api(使用 webpack)中时,它会在 webpack 捆绑期间出现此错误。

因此,在谷歌搜索之后,我发现使用webpack-node-external将能够通过添加externals: [nodeExternals()],我的 webpack 来解决错误。但是通过这种方式,我的身份验证模块无法从主节点 JS webpack 继承环境变量,因为我们将身份验证模块排除在 webpack 中的捆绑之外。

很抱歉这个冗长的故事,简而言之,还有解决hiredis错误的另一种解决方案吗?不使用 webpack 将我的身份验证模块排除在包中?

0 投票
1 回答
363 浏览

c++ - 无法将键设置为“redisClusterCommand()”正在返回空指针

我正在尝试运行一个简单的程序,它将一个键值插入到我的 6 个实例(3 个主实例,3 个副本)的 redis 集群中。我正在使用hiredis-vip

这是程序:

在运行程序时,我遇到了分段错误:

redisReply *具有 NULL 值,当我在printf().

程序有什么问题?

编辑 1

在@Stamatis Liatsos 的建议之后,我更新了我的程序的一部分:

这是我得到的输出:

[cluster-example.c::31]Error: ctx get by node is null

0 投票
1 回答
590 浏览

redis - 客户端与 Redis 集群的交互

我已经开始探索 Redis 集群,它是 C 客户端(hiredis)。我一直无法找到有关客户端与 Redis 集群交互的大量信息。在这方面我有一些疑问:

  • 客户端是否一开始就与集群的所有节点(主节点和从节点)建立连接?

  • 是否有任何协调节点将客户端的请求代理到正确的节点?

  • 如果没有,客户端是否会定期获取有关集群中每个节点的哈希槽持有量的信息(以便将其请求发送到正确的节点)?

  • 哪些客户端-集群连接特定参数是可配置的?

0 投票
1 回答
149 浏览

c++ - 为用户定义的对象指针的内存管理编写一个安全的包装类

我正在使用redis c++ 客户端来开发客户端 API,这些 API 将在 redis 集群上执行 CRUD 操作。redisReply每当执行命令时,我使用的客户端库都会返回结构的指针。稍后,我希望使用freeReplyObject()指针上的函数来释放内存。

为了开发一种更安全的方式,以便我无意中不会freeReplyObject()在无效指针上使用,我正在考虑编写一个包装类:

每当我将在服务器上执行命令时,我都在考虑构建此类的对象。我认为通过这样做,我将不再需要手动释放内存。这种方法在这里是否正确,是否有更好的方法?

请注意freeReplyObject()处理null指针的大小写。


我得到了几乎所有关于使用共享指针/唯一指针的建议。当我检查在线可用的示例并查看它如何适合我的场景(自定义析构函数)时,我还想知道我处理上述内存的方法是否存在根本性错误。


0 投票
1 回答
72 浏览

hiredis - 从hiredis(C编程中的Redis客户端)存储和检索字典数据

我尝试使用hiredis(用C 编写的Redis 客户端)从Redis 服务器发送和检索字典数据。

我可以使用hiredis API 发送/接收简单数据。我还可以使用 redis-py(用 Python 编写的 Redis 客户端)检索和发送字典数据。但是,我在hiredis 中找不到字典数据类型的API。

我的数据是这样的: data = {2: {"load":2.5, "temp":30 } }

任何人请提供一些帮助?谢谢你。

0 投票
1 回答
107 浏览

npm-install - hiredis 使用 .net 框架 2.0 错误重建

我尝试删除并安装 .net framework 3.5(包括 2.0)的相关文件。在这个stackoverflow中建议

尝试按照错误中建议的第二件事中的建议安装 Visual Studio 2005。

我在 node_modules 下找不到hiredis 文件夹。

其他我尝试清理缓存并删除 node_modules 并按照此stackoverflow中的建议重新安装。

在图像中找到完整的错误。

Hiredis 错误