如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

苏南大叔刚刚给大家讲解了nodejs的初级使用,那么今天的话题就稍稍进阶一下,说说nodejs对redis的hash集合的操作方法。

函数说明

redis对集合的操作,相对普通的get和set操作来说,有些复杂。他主要有下面的一些函数:hset,hget,hgetall,hmset,hkeys。 对,这些函数都是以h开头的,对应的就是hash的意思哦。那么请具体查看下面的demo。

var redis = require('redis');
var client = redis.createClient("6379","127.0.0.1",{auth_pass: "yoursecret"});
client.on("error", function (err) {
    console.log("redis client连接失败",err);
});
client.on('ready', function (res) {
    console.log('client ready');
});
client.on('connect', function () {
    client.hset("hash key", "field 1", "v1", redis.print);
    client.hset(["hash key", "field 2", "v2"], redis.print);
    client.hget("hash key", "field 1", redis.print);
    client.hgetall("hash key",function (err, items) {
        console.log(err,items);
    });
    client.hmset("hash key 2", "field3", "3", "field4", "4");
    client.hgetall("hash key 2", function (err, obj) {
        console.log("hgetall:",obj);
    });
    client.hmset("hash key 3", {
        "012345": "abcdefghij", // NOTE: key and value will be coerced to strings
        "field5": "5"
    });
    client.hgetall("hash key 3", function (err, obj) {
        console.log("hgetall:",obj);
    });
    client.hkeys("hash key", function (err, replies) {
        console.log("hkeys:",err,replies);
        replies.forEach(function (reply, i) {
            console.log("    " + i + ": " + reply);
        });
    });
    //client.quit();
});
client.on("error", function (err) {
    console.log("Error " + err);
});

运行结果

运行结果如下:

nodejs操作redis的hash集合 - 010

nodejs操作redis的hash集合(图9-1)

nodejs操作redis的hash集合 - 011

nodejs操作redis的hash集合(图9-2)

nodejs操作redis的hash集合 - 012

nodejs操作redis的hash集合(图9-3)

nodejs操作redis的hash集合 - 013

nodejs操作redis的hash集合(图9-4)

这个例子,我们可以看到,hset和hmset都可以赋值给一个hash集合,而hget可以取得某个集合中的某个filed,hgetall则可以取得某个集合内的所有值,hkeys,就是取得hash里面的key(field)。

情景复现

我们在命令行redis-cli里面,再加深一下印象。

nodejs操作redis的hash集合 - 014

nodejs操作redis的hash集合(图9-5)

nodejs操作redis的hash集合 - 015

nodejs操作redis的hash集合(图9-6)

nodejs操作redis的hash集合 - 016

nodejs操作redis的hash集合(图9-7)

nodejs操作redis的hash集合 - 017

nodejs操作redis的hash集合(图9-8)

在对比中,我们可以看到hmset的参数必须是基数个,因为第一个参数是hash的名字,后面的是key和val成对出现。而hgetall和hkeys的区别在于,hgetall不但返回key,还返回val,而hkeys仅仅返回key。而想象中的仅仅返回value的hvalue或者hvalues是不存在的哦。

nodejs操作redis的hash集合 - 018

nodejs操作redis的hash集合(图9-9)

这些就是hash集合的基本redis操作,其中key以及filed的概念较为混乱,redis-cli和redis-desktop里面关于这个的概念,似乎有些冲突,不过大家看看,明白就行了。

结语

欢迎大家关注苏南大叔的redis相关文章: https://newsn.net/tag/redis/
更多关于redis的npm包的使用问题,可以点击这里查看: https://npm.js.cn/package/redis

  【js】秘籍文章入口,仅传授于有缘之人  js

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

打赏领取小礼物

打赏任意金额,发送截图到邮箱 shang@newsn.net ,可以领取精选回馈如下(任选其一):
  • 《前端视频教程大礼包》一套
  • 《wordpress精选皮肤》一套
  • 《dedecms织梦精选模板》一套
感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!

岁月静好

关注互联网发展,关注苏南大叔的《程序如此灵动~》博客
本文章来自:程序如此灵动~
博客地址为:https://newsn.net/
原文地址为:https://newsn.net/say/node-redis-hashset.html
上一篇好文:nodejs连接redis的步骤和方法
下一篇好文:nodejs如何操作redis,如何订阅和发布消息

如果您转载了本文章,出于某种原因,并没有注明作者或者出处。
在这里,苏南大叔也表示理解和支持。因为苏南大叔深深地明白:
您会在合适的时机,合适的地方,给本博客一个外链。对吧?
您若开心,便是安好!岁月静好,但愿世界和平,没有纷争~