基于NodeJs的Redis使用

基于NodeJs的Redis使用


Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。


cnpm install redis

新建redis.js,引入redis


var redis = require('redis');
var client = redis.createClient(6379,'127.0.0.1');

字符串操作


client.set('hello','this is hello')
client.get('hello',(err,v)=>{
  console.log(err,v)
})

Hash操作


client.hset("hash","today","fine",function(err,response){
  console.log(err,response);
});
client.hset("hash","tomorow","notfine",function(err,response){
  console.log(err,response);
});
client.hget("hash","today",function(err,response){
  console.log(err,response);
});
client.hgetall("hash",function(err,response){
  console.log(err,response);
});

列表操作


假设文件名为list.js,重复执行Node list.js命令,会重复向testLists内插入a,b,c。这是列表和集合的区别之一。

client.rpush('Lists', 'a'); //尾(右边)部插入
client.rpush('Lists', 'b');
client.lpush('Lists', 'c'); //头(左边)部插入

client.lpop('Lists', (err,list)=>{ //左边弹出(删除)
  console.log(err,list)
});
client.rpop('Lists', (err,list)=>{ //右边弹出(删除)
  console.log(err,list)
});
client.lrange('Lists', 0, -1,(err,list)=>{ //输入testLists变量,0和-1是下标,代表全部内容
  console.log(err,list)
});

集合操作


如果Set内部已经有1,2,3,重复执行此文件不会重复插入。

client.sadd('Set',1)
client.sadd('Set',2)
client.sadd('Set',3)
client.smembers('Set', (err, v)=>{
  console.log(err, v)
})

判断是否重复

client.sismember('Set',19,function(err,reply){

});

消息订阅


新建推送文件pub.js

client.publish('Publish', 'message form pub.js')

新建订阅文件sub.js
订阅Publish频道,使用on()方法监听message

client.subscribe('Publish');
client.on('message', (channel, msg)=>{
  console.log(channel, msg)
})

先执行node sub.js执行订阅操作
再执行node pub.js推送消息message form pub.js,
就可以在sub,js的输入栏中看到打印:

testPublish message form pub.js
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Node.js中使用Redis订阅功能,可以通过引入`redis`模块并创建Redis客户端来实现。首先,需要在Redis配置文件中启用键空间通知功能,可以通过在Redis程序根目录下的命令行窗口执行以下命令来实现:`./redis-cli config set notify-keyspace-events Ex` [1。 然后,在Node.js代码中,使用`redis`模块创建两个Redis客户端实例,并通过`subscribe`方法订阅消息频道,例如`chat`和`chat1`。当订阅成功后,可以在`subscribe`事件回调函数中处理相关逻辑。同时,可以在`message`事件回调函数中接收到订阅频道发布的消息,并进行相应的业务处理。最后,在`unsubscribe`事件回调函数中可以取消订阅。以下是一个示例代码: ```javascript var redis = require("redis"); var client = redis.createClient(6379, "127.0.0.1"); var client1 = redis.createClient(6379, "127.0.0.1"); function getRedisData() { client.on("ready", function () { client.subscribe("chat"); client.subscribe("chat1"); console.log("订阅成功。。。"); }); client.on("error", function (error) { console.log("Redis Error " + error); }); client.on("subscribe", function (channel, count) { console.log("client subscribed to " + channel + ", " + count + " total subscriptions"); }); client.on("message", function (channel, message) { console.log("我接收到信息了:" + message); // 在这里处理业务逻辑 }); client.on("unsubscribe", function (channel, count) { console.log("client unsubscribed from " + channel + ", " + count + " total subscriptions"); }); } getRedisData(); ``` 需要注意的是,Redis的键空间通知功能是基于发布订阅模型的,而订阅频道是固定的`__keyevent@0__:expired` [2。通过设置键的过期时间并使用发布订阅模式,可以接收到键过期的通知,并执行相应的业务逻辑。例如,在Redis中可以使用`expire`命令设置键`test`的过期时间,然后通过订阅`__keyevent@0__:expired`频道来接收键过期的通知 [3。 希望以上信息能帮助到您。如果还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [NodeJS 使用redis实现定时执行方法](https://blog.csdn.net/huyande123/article/details/112854509)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨夜的博客

大赏给个咖啡钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值