标签: hiredis

2节点Redis HA

我有两个节点,我想在主动 - 主动模式下作为服务器运行,并且还具有HA功能,即如果一个停机,另一个应该开始接收所有请求,但两者都启动,两者都应该接受所有请求.现在因为Redis不允许同一个哈希集的主动 - 主动模式,并且我没有运行Sentinel的选项,因为我没有第三个节点,我的想法是在复制中运行两个节点,我自己决定是否主节点关闭并将从属设备提升为主节点.这有什么问题吗?当原始主机重新启动时,有没有办法将其配置为从机?

这听起来像个好主意吗?我对Redis以外的建议持开放态度.

database redis hiredis

8
推荐指数
2
解决办法
1820
查看次数

如何在Redis中使用HSCAN命令?

我想在我的任务中使用Redis的HSCAN命令,但我不知道它是如何工作的.Redis的官方页面(http://redis.io/commands/hscan)为这个命令提供了空白页面.

我正在获取连续的输入数据并将它们瞬间保存在Redis中的多个哈希中,我想在以后的时间点迭代所有这些数据.

我正在使用以下命令来保存我的数据

HMSET myhash ordertype "neworder" order_ts "1234" act_type "order_ack" ack_ts "1240"
HMSET myhash2 ordertype "neworder" order_ts "2234" act_type "order_ack" ack_ts "2240"

谁能给我一些如何使用HSCAN的例子?

在我的情况下,我想得到以下输出
1)myhash
2)myhash2
3)myhash3
.
.
.
.

redis hiredis

7
推荐指数
2
解决办法
3万
查看次数

Hiredis超时并发有大量并发请求

我正在使用一个名为libvmod-redis的 Varnish redis集成插件.我看到一个问题,如果我得到大量的并发请求,大约350,redis开始超时,我最终得到了Varnish中的段错误.

我收到这些错误:

varnishd[27892]: Child (27893) said redis error (connect): Connection timed out
varnishd[27892]: Child (27893) said redis error (command): err=1 errstr=Connection timed out
varnishd[19528]: Child (19529) said redis error (command): err=1 errstr=select(2): Invalid argument
varnishd[19528]: Child (19529) said redis error (command): err=1 errstr=Connection timed out
varnishd[19528]: last message repeated 9 times
varnishd[19528]: Child (19529) said redis error (command): err=1 errstr=select(2): Invalid argument
varnishd[19528]: Child (19529) said redis error (connect): fcntl(F_GETFL): Bad file descriptor
varnishd[19528]: Child (19529) said …
Run Code Online (Sandbox Code Playgroud)

c varnish redis hiredis

6
推荐指数
1
解决办法
787
查看次数

nodejs:安装hiredis包时出错

试图在nodejs中安装hiredis,我收到了这个错误.我在Google上找不到任何有用的内容.有谁有这个问题?我正在使用最新版本的nodejs.

 C:\Users\berthsa\new>npm install hiredis --save
npm http GET https://registry.npmjs.org/redis
npm http GET https://registry.npmjs.org/hiredis
npm http 304 https://registry.npmjs.org/redis
npm http 304 https://registry.npmjs.org/hiredis
npm http GET https://registry.npmjs.org/bindings
npm http 304 https://registry.npmjs.org/bindings

> hiredis@0.1.16 install C:\Users\berthsa\new\node_modules\hiredis
> node-gyp rebuild


C:\Users\berthsa\new\node_modules\hiredis>node "C:\Users\berthsa\AppData\Roaming
\npm\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp
.js" rebuild
Building the projects in this solution one at a time. To enable parallel build,
please add the "/m" switch.
  hiredis.c
  async.c
  net.c
  sds.c
..\..\deps\hiredis\net.c(35): fatal error C1083: Cannot open include file: 'sys
/socket.h': No such file or directory [C:\Users\berthsa\new\node_modules\hiredi …
Run Code Online (Sandbox Code Playgroud)

node.js hiredis

5
推荐指数
1
解决办法
2732
查看次数

通过npm安装hiredis出错

我正在尝试通过 npm 安装hiredis,但出现错误:

  npm  install hiredis redis

  npm http GET https://registry.npmjs.org/redis
  npm http GET https://registry.npmjs.org/hiredis
  npm http 304 https://registry.npmjs.org/hiredis
  npm http 304 https://registry.npmjs.org/redis
  npm http GET https://registry.npmjs.org/bindings
  npm http 304 https://registry.npmjs.org/bindings

  > hiredis@0.1.16 install /home/mohit/node_modules/hiredis
  > node-gyp rebuild

  make: Entering directory `/home/mohit/node_modules/hiredis/build'
  CC(target) Release/obj.target/hiredis/deps/hiredis/hiredis.o
  CC(target) Release/obj.target/hiredis/deps/hiredis/net.o
  CC(target) Release/obj.target/hiredis/deps/hiredis/sds.o
  CC(target) Release/obj.target/hiredis/deps/hiredis/async.o
  AR(target) Release/obj.target/deps/hiredis.a
  COPY Release/hiredis.a
  CXX(target) Release/obj.target/hiredis/src/hiredis.o
  make: g++: Command not found
  make: *** [Release/obj.target/hiredis/src/hiredis.o] Error 127
  make: Leaving directory `/home/mohit/node_modules/hiredis/build'
  gyp ERR! build error 
  gyp ERR! stack Error: `make` failed …
Run Code Online (Sandbox Code Playgroud)

node.js npm ubuntu-12.04 hiredis

5
推荐指数
1
解决办法
3979
查看次数

在 Windows 中使用 Redis 和 libuv

我正在尝试使用 libuv 作为事件库来编译hiredis (C++) 附带的示例程序。Redis 的 Windows 兼容版本使用名为 Win32_Interop 的库。

我遇到了两个问题:

  1. libuv 和 Win32_Interop 都定义了 ssize_t,但它们是相互冲突的类型。

  2. libuv 和 Win32_interop 都使用 WinSocks。将程序链接到 ws2_32.lib 会导致重复定义,而不这样做会导致无法解析的外部符号。

我该如何解决这些问题?

c++ windows redis libuv hiredis

5
推荐指数
0
解决办法
644
查看次数

Redis - ECONNREFUSED.即使服务器正在运行

我已经阅读了有关ECONNREFUSED错误的stackoverflow上的所有其他线程但仍然无效.目前我正在研究Ubuntu 12.04.1 LTS

对于测试,我有这个非常简单的代码:

var redis = require("redis"),
    client = redis.createClient(6379,"127.0.0.1");

redis.debug_mode = true;

client.on("connect", function () {
    client.set("foo_rand000000000000", "some fantastic value");
});
Run Code Online (Sandbox Code Playgroud)

但每当我启动它时,我得到的只是ECONNREFUSED错误:

root@oncn05:~/ba# node test.js
hiredis parser not installed.
Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED

node.js:201
    throw e; // process.nextTick error, or 'error' event on first tick
          ^
Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED
    at RedisClient.on_error (/root/ba/node_modules/redis/index.js:196:24)
    at Socket.<anonymous> (/root/ba/node_modules/redis/index.js:106:14)
    at Socket.emit (events.js:67:17)
    at Array.0 (net.js:319:25)
    at EventEmitter._tickCallback (node.js:192:41)
root@oncn05:~/ba#
Run Code Online (Sandbox Code Playgroud)

问题是:连接到redis没问题redis-cli. …

redis node.js hiredis

5
推荐指数
1
解决办法
5340
查看次数

有没有办法引用从未定义/声明的C常量?

我认为答案是否定的,我通常不会遇到麻烦的源代码,但我对C/C++稍微有些新意,无法找到声明此常量的位置.

我要寻找CMD_REQ_REDIS_MGET对Redis的的hiredis VIP的客户端库.我做了一个github/google搜索,并在五次出现时得到了两个文件的结果.我也尝试在源代码中grep查找字符串.

$ grep -rnw ./ -e "CMD_REQ_REDIS_MGET"
./command.c:241:    case CMD_REQ_REDIS_MGET:
./command.c:574:                    r->type = CMD_REQ_REDIS_MGET;
./hircluster.c:3257:        if (command->type == CMD_REQ_REDIS_MGET) {
./hircluster.c:3446:        if (command->type == CMD_REQ_REDIS_MGET) {
./hircluster.c:3480:    if (command->type == CMD_REQ_REDIS_MGET) {
Run Code Online (Sandbox Code Playgroud)

源代码不包含任何二进制文件,应该是自包含的.它不包括任何与Redis相关的外部资源库,所以我只是困惑了几个小时.

我需要知道的原因是我正在尝试添加另一个常量,就像它一样,我一直得到错误,声明还没有找到,所以我想知道是否有任何黑魔法在这里发生C我是只是没有意识到.

编辑:想要指出这个代码实际上将按原样编译.

c redis hiredis

5
推荐指数
1
解决办法
87
查看次数

Redis事务回滚

我是redis的新手.我有一个应用程序,其中有多个redis命令进行事务.如果其中一个失败,redis会像关系数据库那样回滚事务吗?用户是否有责任回滚事务?

redis hiredis

4
推荐指数
2
解决办法
1733
查看次数

npm安装redis问题

运行npm时遇到问题安装redis.得到错误:

npm WARN install Refusing to install redis as a dependency of itself
Run Code Online (Sandbox Code Playgroud)

当我尝试安装hiredis时,它似乎安装得很好但是,当我尝试运行任何示例时,它们将失败并且找不到所需的文件"redis".

我最后通过安装redis global来解决这个问题:

npm install -g redis
Run Code Online (Sandbox Code Playgroud)

有没有人见过这个?

redis node.js hiredis

4
推荐指数
1
解决办法
1952
查看次数

标签 统计

hiredis ×10

redis ×8

node.js ×4

c ×2

c++ ×1

database ×1

libuv ×1

npm ×1

ubuntu-12.04 ×1

varnish ×1

windows ×1