问题标签 [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.
database - 2节点Redis HA
我有两个节点,我想在主动-主动模式下作为服务器运行,并且还具有 HA 功能,即如果一个节点关闭,另一个节点应该开始接收所有请求,但是当两个节点都启动时,两个节点都应该接收所有请求。现在,由于 Redis 不允许相同哈希集的主动-主动模式,而且我没有运行 Sentinel 的选项,因为我不能有第三个节点,我的想法是在复制中运行这两个节点,我自己决定是否主节点已关闭并将从属节点提升为主节点。这有什么问题吗?当原来的master回来时,有没有办法将它配置为slave?
这听起来是个好主意吗?我对 Redis 以外的建议持开放态度。
c++ - 如果 key 定义为 std::string,则存储在 redis 中的 pod 结构的反序列化失败
在 redis 中存储 POD 结构可以正常工作,const char *
但不std::string
涉及。
常量字符 * 示例
如果我替换这些行:
和
执行总是以Segmentation fault结束。
我自己无法解决这个问题,我非常感谢任何帮助。
c++ - 未加载 Hiredis 库/未找到图像
我正在使用使用hiredis的cmake开发一个c++项目。CMake 和编译过程没有给出任何错误。但是,当我尝试执行我的项目时(从终端或我正在使用 [CLion] 的 IDE,我收到以下错误:
dyld:库未加载:libhiredis.0.13.dylib
引用自:/Users/connorriley/CLionProjects/DispatchingOptimization/bin/dispatch 原因:找不到图像
我不确定为什么要寻找我的项目,libhiredis.0.13.dylib
因为我拥有的唯一hiredis库文件是libhiredis.dylib.
我的项目文件结构如下:
附加信息:
- 编译器:clang
- 操作系统:macOS 10.12.3
- cmake 版本 3.7.2
redis - HiRedis:: 如何使用 LPUSH 在 Redis 列表中插入空白字符串
我正在使用hiredis库的redisCommand来做这样的事情:
其中“”表示我想在列表中插入空元素。当我从 redis 上的命令行执行此操作时,它工作正常,但是当我将其作为命令传递给hiredis 时,它不起作用并且元素最终是“”而不是空的。有什么解决办法吗?
这是我调用 redisCommand 的方式:
我也试过放单引号、反斜杠等
redis - 如何使用redis和gearman进行持久化
如何将 Gearman 与 redis 一起用于持久队列?
我正在尝试为 centos7 运行它。我让 Gearman 工作。正在运行
我可以看到对 libsqlite3、Postgres、libtokyocabinet 和 MySQL 的支持。
我已经根据各种论坛使用 yum 安装了hiredis,尽管我不知道如何通过终端运行它。我为 gearman 下载了 tar 文件,并尝试在 gearman 文件夹中运行此命令,但无济于事。
c++ - 在 Redis 中存储字符向量 - 包含 NUL
我想将 JPEG 图像作为单个键值对存储在 redis 中。从 OpenCV,我得到一个std::vector<unsigned char> jpeg
来自imencode()
现在我用 Hiredis将此向量转换为std::string
和它。SET
问题是jpeg
向量包含NUL
字符 ( ANSII == 0
) 并且 HiredisSET
函数接收value.c_str()
。.c_str()
在第一次出现 后截断字符串NUL
,因此只有这个子字符串存储在数据库中。
我的问题是:我怎样才能SET
和Hiredis 一起GET
(std::vector<unsigned char>
包含)?NUL
(最小化运行时间至关重要。)
这是我的代码:
javascript - 无法在 Windows 10 x64 上安装hiredis@0.5.0
我正在尝试hiredis
在 Windows 64 位系统上安装,因为node-celery
软件包需要它。
系统正在运行
- 节点 v7.9.0
- npm v4.5.0
- 带有更新 5 的 Visual Studio 社区 2013 (
en_visual_studio_community_2013_with_update_5_x86_6816332
) - Windows 10(64 位)
跑步
给出以下构建错误。
如何安装v120 build tools
错误消息中的说明?
asynchronous - redisAsyncContext 中的 ev
在 redisAsyncContext 中,stuct ev 被定义为:
有一个功能:
这个怎么运作?我什么时候应该使用ev?
asynchronous - 在 Hiredis 异步上下文上设置 TCP 保活间隔
我正在围绕hiredis编写一个包装器,以便在redis节点出现故障时启用重新连接的发布/订阅功能。
我正在使用异步 redis API。
所以我有一个测试工具来设置发布者和订阅者。然后,该线束关闭订阅者正在读取的从属 VM。
但是,断开回调直到很久以后才被调用(当我破坏包含相应 redisAsyncContext 的 Subscription 对象时)
我认为解决此问题的方法可能是使用 tcp keepalive。
于是我发现net.h中有一个合适的redis函数:
int redisKeepAlive (redisContext* c, int interval);
但是,以下内容似乎表明库中故意省略了 redisKeepAlive 函数:
当然,当我尝试使用该调用时,链接器会抱怨:
我运气不好 - 有没有办法在 Hiredis 异步上下文上设置 TCP keepalive 间隔?
更新 我发现了这个:
但是在 asyncContext->c 上设置它并调整 REDIS_KEEPALIVE_INTERVAL 似乎没有效果。
c++ - 如何在 Redis 上使用 List 使用hiredis 使用 C++ 开发
我尝试在 C++ 的 Linux 上将 list 与 redis 一起使用,如何在 C++ 上使用“rpush”、“lpush”、“rpop”、“lpop”?我是这样写的:
但它没有成功,“this->_reply->str”说“WRONGTYPE 对持有错误值的键的操作”
我该如何使用这些方法?谢谢