这是我添加 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_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中使用有序集数据类型.我用命令添加数据zadd.添加数据是JSON格式.
如何通过分数更改此排序集中的值?我需要获取JSON值并更改一个字段,并在更新此有序集后.
我尝试用相同的分数添加againg数据,但我得到了同意
我有一套redis。该集合最多可存储20个成员(通过SADD命令添加)。我的问题是;我需要在需要时更新该成员。每个会员最多需要修改 10 次。设置成员是 json 作为字符串。我脑子里只有解决方案,也没有让所有成员更新并再次重新创建该集。但这似乎很愚蠢。
我知道有一个ZADD带有分数支持的排序集,它似乎也合适,我也需要更新像 json 中的数据这样的分数,但我只是想知道是否有任何方法以有效的方式更新成员,或者在 redis 方式上更新成员不可接受?
注意:Redis 数据存储由 Node.js 和 Java 客户端使用。
我想使用redis来存储我自己的一些键值对,但是我的一些模块已经使用它了.redis表示会话数据的会话存储,以及socket io的redis适配器.所以我的问题很简单,我如何创建或指定一个数据库/命名空间来存储我自己的密钥而不会发生密钥冲突?我正在使用node-redis驱动程序.
我们有一个使用 Redis Sentinel(3 哨兵 1 主 1 从)的应用程序。我们根本不需要复制。如何关闭复制?
node-redis一旦一切都启动并运行,它具有处理任何 Redis 断开连接的出色功能。如果 Redis 实例变得不可用,可以使用适当的retry_strategy方式设置客户端尝试重新连接,直到 Redis 再次可用。
是否有可能让客户端在启动时进入这个状态,即使 Redis 宕机了?
我的场景是这样的:我使用 Redis 作为主要数据存储,并带有一个不基于 Redis 的备用辅助数据存储。当我的应用程序启动时,如果 Redis 不可用,则尝试检索数据将改用辅助数据存储。
但是,当 Redis 可用时,我希望我的应用程序开始使用 Redis 主数据存储。由于 Redis 连接在启动时未成功retry_strategy,因此将为先前建立的连接处理此问题的 不起作用。
我可以编写代码来重试初始 Redis 连接,直到它成功,但让我震惊的是,开箱即用的功能已经非常接近我需要的功能,如果我能说服它从即使 Redis 已关闭,也能启动。
我正在努力使这个包工作。
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) 我有一个数组,我填写了一个这样的:
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的关键,但reply为undefined
client.set('order-book:buy:bitstamp', obj, function(err, reply) {
console.log(reply);
});
Run Code Online (Sandbox Code Playgroud)
我也试过rpush,但没有运气。
可能是什么问题呢?
当 React 组件被挂载(即在 componentDidMount() 内)时,如何订阅它内的 redis 频道?
在互联网上几乎到处都可以看到使用 nodejs 实现的 redis,但找不到任何足够的提示如何在 React App 中使用它。
实际上,我想在不刷新页面的情况下更新我的电子商务仪表板(反应应用程序)数据。在后端,我使用了 djangorest 框架。当任何 API 被触发以更改任何数据时,python 代码将执行其工作并在特定 Redis 通道中发布消息。
我想从客户端(反应应用程序)订阅该频道,以便它可以使用此消息并实时更新其内容。