我想更新项目并将其添加到redis哈希会话条目。
我已经能够使用以下代码使用redis客户端创建一个:
var redis = require('redis');
var client = redis.createClient(); //creates a new client
client.on('connect', function() {
console.log('connected');
});
client.hmset('frameworks', {
'javascript': 'AngularJS',
'css': 'Bootstrap',
'node': 'Express'
});
有没有办法添加到这个哈希?我想更改并更新现有的哈希元素。
如果不读取所有内容并使用updated和new元素创建新哈希,这是否可行。
我正在使用此网页作为教程指南:https://www.sitepoint.com/using-redis-node-js/
答案 0 :(得分:7)
您可以根据要添加或更新的数量使用相同的 hmset / hset
var redis = require('redis');
var client = redis.createClient(); //creates a new client
client.on('connect', function() {
console.log('connected');
});
client.hmset('frameworks', {
'javascript': 'AngularJS',
'css': 'Bootstrap',
'node': 'Express'
});
假设你最初有这个并且想要添加db:mongo,并想要更新节点:Express4然后你可以使用
//If you know will update only one use hset instead
client.hmset('frameworks', {
'node': 'Express4',
'db' : 'MongoDB'
});
将添加db&关键框架也更新节点
答案 1 :(得分:1)
是的,如果散列中已存在key
或散列field
,则会覆盖它们。
因此,要添加或更新一个字段,可以使用hset
或hmset
,如果要插入/插入多个字段。
如果要覆盖整个哈希值而丢弃以前的值,可以使用client.multi()
并使用del
和hmset
命令的组合来执行它们。事务。