我有两个节点,我想在主动 - 主动模式下作为服务器运行,并且还具有HA功能,即如果一个停机,另一个应该开始接收所有请求,但两者都启动,两者都应该接受所有请求.现在因为Redis不允许同一个哈希集的主动 - 主动模式,并且我没有运行Sentinel的选项,因为我没有第三个节点,我的想法是在复制中运行两个节点,我自己决定是否主节点关闭并将从属设备提升为主节点.这有什么问题吗?当原始主机重新启动时,有没有办法将其配置为从机?
这听起来像个好主意吗?我对Redis以外的建议持开放态度.
我想在我的任务中使用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
.
.
.
.
我正在使用一个名为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) 试图在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) 我正在尝试通过 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) 我正在尝试使用 libuv 作为事件库来编译hiredis (C++) 附带的示例程序。Redis 的 Windows 兼容版本使用名为 Win32_Interop 的库。
我遇到了两个问题:
libuv 和 Win32_Interop 都定义了 ssize_t,但它们是相互冲突的类型。
libuv 和 Win32_interop 都使用 WinSocks。将程序链接到 ws2_32.lib 会导致重复定义,而不这样做会导致无法解析的外部符号。
我该如何解决这些问题?
我已经阅读了有关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. …
我认为答案是否定的,我通常不会遇到麻烦的源代码,但我对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我是只是没有意识到.
编辑:想要指出这个代码实际上将按原样编译.
我是redis的新手.我有一个应用程序,其中有多个redis命令进行事务.如果其中一个失败,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)
有没有人见过这个?