标签: node-redis

Redis + Node.js -- 遍历集合成员

这是我添加 set 的地方users。每个user都有一个userID和一个socketID

 socket.on('login', function(userID){
      console.log('io.sockets.on -- socket.on -- userID: ' + userID);
      console.log('socket.id = ' + socket.id);

      var user = userID;

      // add first user
      redis.sadd("users", user);
      redis.hmset(user, "socketID", socket.id, "userID", userID);  
    });    
Run Code Online (Sandbox Code Playgroud)

这是我尝试检索users集合中的所有内容并循环遍历它们的地方:

    // Get the list of online users and show Presence
    redis.smembers("users", function(err,results) {

        var onlineUsers = results;

        console.log("onlineUsers = " + onlineUsers);

        for (var onlineUser in onlineUsers) {

            console.log("onlineUser = " + onlineUser);

            var userID …
Run Code Online (Sandbox Code Playgroud)

redis node.js node-redis

2
推荐指数
1
解决办法
3441
查看次数

node_redis CONFIG SET命令

我目前正在使用redis编写应用程序,我遇到了node_redis库的问题.特别是我无法弄清楚如何在node_redis中使用redis命令

我尝试了以下所有......

client.send_command("CONFIG SET", ["notify-keyspace-events", "Ex"]);
client.config("SET", ["notify-keyspace-events", "Ex"]);
Run Code Online (Sandbox Code Playgroud)

这个和其他类似的变体似乎不起作用...我也找不到node_redis文档中详细说明的命令.

任何帮助将不胜感激!

在一个侧面说明:我使用这个命令来创建一个客户端(节点侧),将订阅密钥过期事件(我想执行几个清理行动的每一个密钥过期时间).是否可以使用node_redis CONFIG SET等效或者使用自定义conf文件启动redis-server更好/更常见?我会假设后者但是我想在Heroku上部署它,这会改变环境吗?

谢谢!

redis node.js node-redis

2
推荐指数
1
解决办法
1414
查看次数

如何更改排序集中的数据?

我在Redis中使用有序集数据类型.我用命令添加数据zadd.添加数据是JSON格式.

如何通过分数更改此排序集中的值?我需要获取JSON值并更改一个字段,并在更新此有序集后.

我尝试用相同的分数添加againg数据,但我得到了同意

redis node-redis phpredis

2
推荐指数
1
解决办法
2526
查看次数

redis set成员更新的高效方式

我有一套redis。该集合最多可存储20个成员(通过SADD命令添加)。我的问题是;我需要在需要时更新该成员。每个会员最多需要修改 10 次。设置成员是 json 作为字符串。我脑子里只有解决方案,也没有让所有成员更新并再次重新创建该集。但这似乎很愚蠢。

我知道有一个ZADD带有分数支持的排序集,它似乎也合适,我也需要更新像 json 中的数据这样的分数,但我只是想知道是否有任何方法以有效的方式更新成员,或者在 redis 方式上更新成员不可接受?

注意:Redis 数据存储由 Node.js 和 Java 客户端使用。

java redis node.js node-redis

2
推荐指数
1
解决办法
2071
查看次数

如何在redis上命名空间键以避免名称冲突?

我想使用redis来存储我自己的一些键值对,但是我的一些模块已经使用它了.redis表示会话数据的会话存储,以及socket io的redis适配器.所以我的问题很简单,我如何创建或指定一个数据库/命名空间来存储我自己的密钥而不会发生密钥冲突?我正在使用node-redis驱动程序.

namespaces redis node.js node-redis

2
推荐指数
1
解决办法
2589
查看次数

如何使用 Sentinel 禁用 redis 主从复制

我们有一个使用 Redis Sentinel(3 哨兵 1 主 1 从)的应用程序。我们根本不需要复制。如何关闭复制?

redis node-redis redis-sentinel

2
推荐指数
1
解决办法
2633
查看次数

即使 Redis 不可用,也能在启动时建立“连接重试”行为

node-redis一旦一切都启动并运行,它具有处理任何 Redis 断开连接的出色功能。如果 Redis 实例变得不可用,可以使用适当的retry_strategy方式设置客户端尝试重新连接,直到 Redis 再次可用。

是否有可能让客户端在启动时进入这个状态,即使 Redis 宕机了?

我的场景是这样的:我使用 Redis 作为主要数据存储,并带有一个不基于 Redis 的备用辅助数据存储。当我的应用程序启动时,如果 Redis 不可用,则尝试检索数据将改用辅助数据存储。

但是,当 Redis 可用时,我希望我的应用程序开始使用 Redis 主数据存储。由于 Redis 连接在启动时未成功retry_strategy,因此将为先前建立的连接处理此问题的 不起作用。

我可以编写代码来重试初始 Redis 连接,直到它成功,但让我震惊的是,开箱即用的功能已经非常接近我需要的功能,如果我能说服它从即使 Redis 已关闭,也能启动。

redis node.js node-redis

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

Node.js rsmq - 在 Node.js 应用程序重新启动之前,新消息不可见

我正在努力使这个包工作。

redis 版本:稳定 4.0.6

我像这样连接Redis,那里没有问题。

发布订阅.js

var redis = require("redis");
var psRedis = redis.createClient();

psRedis.auth("mypasswordishere", function (callback) {
  console.log("connected");
});

module.exports.psRedis = psRedis;
Run Code Online (Sandbox Code Playgroud)

启动 Node.js 应用程序后,我可以在控制台上看到“已连接”并执行操作,我已经检查过了。

我的test.js文件在下面。

测试.js

var express = require('express');
var router = express.Router();
var path = require("path");
var bodyParser = require('body-parser');
var async1 = require("async");
var client = require("../databases/redis/redis.js").client;

var RedisSMQ = require("rsmq");

var psRedis = require("./realtime/operations/pubsub").psRedis;

var rsmq = new RedisSMQ({client: psRedis});

rsmq.createQueue({qname: "myqueue"}, function (err, resp) {
  if (resp === 1) …
Run Code Online (Sandbox Code Playgroud)

redis node.js node-redis

2
推荐指数
1
解决办法
1077
查看次数

从 NodeJS 将数组插入到 redis

我有一个数组,我填写了一个这样的:

var obj = [];
for(i = 0; i < data.bids.length; i += 1) {
    obj.push(JSON.parse(data.bids[i][0]));
}
Run Code Online (Sandbox Code Playgroud)

之后我验证数组是否包含所需的值(它包含):

console.log("Array after the for: \n");
console.log(obj);
Run Code Online (Sandbox Code Playgroud)

我试图挽救这下Redis的关键,但replyundefined

client.set('order-book:buy:bitstamp', obj, function(err, reply) {
    console.log(reply);
});
Run Code Online (Sandbox Code Playgroud)

我也试过rpush,但没有运气。
可能是什么问题呢?

redis node.js node-redis

2
推荐指数
1
解决办法
7770
查看次数

如何从 React 组件订阅 Redis 频道

当 React 组件被挂载(即在 componentDidMount() 内)时,如何订阅它内的 redis 频道?

在互联网上几乎到处都可以看到使用 nodejs 实现的 redis,但找不到任何足够的提示如何在 React App 中使用它。

实际上,我想在不刷新页面的情况下更新我的电子商务仪表板(反应应用程序)数据。在后端,我使用了 djangorest 框架。当任何 API 被触发以更改任何数据时,python 代码将执行其工作并在特定 Redis 通道中发布消息。

我想从客户端(反应应用程序)订阅该频道,以便它可以使用此消息并实时更新其内容。

publish-subscribe redis node-redis reactjs

2
推荐指数
1
解决办法
5460
查看次数