前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis数据库在Node.js中的使用

Redis数据库在Node.js中的使用

作者头像
越陌度阡
发布2022-05-06 15:01:44
4.2K0
发布2022-05-06 15:01:44
举报

1. 安装node-redis

代码语言:javascript
复制
npm install redis --save

如果注册了淘宝镜像,也可以用以下方式进行安装。

代码语言:javascript
复制
cnpm install redis --save

参考:

https://github.com/NodeRedis/node-redis

2. 引入node-redis

代码语言:javascript
复制
const redis = require("redis");
// 参数为端口号+IP地址
const client = redis.createClient(6379, '127.0.0.1');

3. 使用node-redis

1. 操作字符串类型的数据

代码语言:javascript
复制
// 删除所有数据
client.flushall();

// 设置数据
client.set('username', '李四');
// 设置过期 5 秒
client.set('username', '李四', 'EX', '5');
// 获取数据
client.get('username', (err, val) => {
    if (err) {
        console.log(err);
        return;
    }
    console.log(val);
    // 李四
});

// 删除数据
client.del('username', (err, val) => {
    if (err) {
        console.log(err);
        return;
    }
    console.log(val);
    // 1
});


var userInfo = {
    username: '张三',
    age: '20'
}
// 将对象转为字符串再存储
client.set('userInfo', JSON.stringify(userInfo));
// 获取数据
client.get('userInfo', (err, result) => {
    if (err) {
        console.log(errr);
        return;
    }
    console.log(JSON.parse(result));
    // {username:'张三',age:'20'}
})

2. 操作列表类型的数据

代码语言:javascript
复制
// 删除所有数据
client.flushall();

// 从列表右侧加入数据
client.rpush('userlist', '张三');
client.rpush('userlist', '李四');
client.rpush('userlist', '王五');
// 从列表左侧加入数据
client.lpush('userlist', '陈二');


// 获取列表的值
client.lrange('userlist', 0, -1, (err, data) => {
    if (err) {
        console.log(err);
        return;
    };
    console.log(data);
    // ['陈二','张三','李四','王五']
});

// 删除列表右侧第一个值
client.rpop('userlist');
// 删除列表左侧第一个值
client.lprop('userlist');
// 获取列表的值
client.lrange('userlist', 0, -1, (err, data) => {
    if (err) {
        console.log(err);
        return;
    };
    console.log(data);
    // ['张三','李四']
});

3. 操作集合类型的数据

代码语言:javascript
复制
// 删除所有的数据
client.flushall();

// 添加一条数据到集合中
client.sadd('userlist','张三');
client.sadd('userlist','李四');
// 获取集合的数据
client.smembers('userlist', (err, resutl) => {
    if(err){
        console.log(err);
        return;
    };
	console.log(resutl);
    // ['李四','张三']
});

// 同时添加多条数据到集合中
client.sadd('userlist', '王五', '赵四');
// 获取集合的数据
client.smembers('userlist', (err, resutl) => {
    if(err){
        console.log(err);
        return;
    };
    console.log(resutl);
    // ['赵四','王五','李四','张三']
});

4. 操作哈希类型的数据

代码语言:javascript
复制
// 删除所有数据
client.flushall();

// 一次增加一条数据    
client.hset('userInfo','name',"张三");
client.hset('userInfo','age',"20");

// 获取数据
client.hgetall('userInfo', (err, result) => {
    if(err){
        console.log(err);
    }
    console.log(result);
    // {name:'张三',age:'20'}
});



// 一次增加多条数据
client.hmset('userInfo','name','李四','age','20','sex','女');
// 获取数据
client.hgetall('userInfo', (err, result) => {
    if(err){
        console.log(err);
    }
    console.log(result);
    // {name:'李四',age:'20',sex:'女'}
});

5. 发布/订阅的使用

广播服务

代码语言:javascript
复制
var redis = require("redis");
var client = redis.createClient(6379, '127.0.0.1');

//  广播消息 
client.publish('sendServer01', 'this is news info');
client.publish('sendServer02', 'this is product info');

第一个订阅服务

代码语言:javascript
复制
var redis = require("redis");
var client = redis.createClient(6379,'127.0.0.1');

// 订阅消息
client.subscribe('sendServer01');

// 监听消息
client.on('message',(channel,msg)=>{
    console.log(channel);
    // sendServer01
    console.log(msg);
    // this is news info
})

第二个订阅服务

代码语言:javascript
复制
var redis = require("redis");
var client = redis.createClient(6379,'127.0.0.1');
  
// 订阅消息
client.subscribe('sendServer02');
// 监听消息
client.on('message',(channel,msg)=>{
    console.log(channel);
    // sendServer02
    console.log(msg);
    // this is product info
});
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 安装node-redis
  • 2. 引入node-redis
  • 3. 使用node-redis
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档