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

苏南大叔刚刚给大家讲解了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集合 - 011

nodejs操作redis的hash集合 - 012

nodejs操作redis的hash集合 - 013

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

情景复现

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

nodejs操作redis的hash集合 - 014

nodejs操作redis的hash集合 - 015

nodejs操作redis的hash集合 - 016

nodejs操作redis的hash集合 - 017

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

nodejs操作redis的hash集合 - 018

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

结语

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

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