前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >node.js应用Redis

node.js应用Redis

作者头像
周小董
发布2019-03-25 10:28:32
1.3K0
发布2019-03-25 10:28:32
举报
文章被收录于专栏:python前行者python前行者

Node.js下使用Redis,首先:

1、有一台安装了Redis的服务器,当然,安装在本机也行

2、本机,也就是客户端,要装node.js

3、项目要安装nodejs_redis模块

注意第 3 点,不是在本机安装就行了,而是说,要在项目中安装(引用)。

方法是,DOS窗口,在项目目录下,输入

代码语言:javascript
复制
npm install redis

这样就将nodejs_redis下载一份,放到当前目录下了。看看,多了一个文件夹:node_modules\redis

编写以下代码,保存到当前目录下\index.js

代码语言:javascript
复制
var redis = require("redis"),//召唤redis
/*
    连接redis数据库,createClient(port,host,options);
    如果REDIS在本机,端口又是默认,直接写createClient()即可
    redis.createClient() = redis.createClient(6379, '127.0.0.1', {})
*/
    RDS_PORT = 6379,                //端口号
    RDS_HOST = '192.168.8.30',    //服务器IP  要连接的A服务器redis
    RDS_PWD = '123456',     //密码
    RDS_OPTS = {db:9},                  //设置项
    client = redis.createClient(RDS_PORT,RDS_HOST,RDS_OPTS);

//如果需要验证,还要进行验证
//client.auth(password, callback);
client.auth(RDS_PWD,function(){
    console.log('通过认证');
});
// if you'd like to select database 3, instead of 0 (default), call
// client.select(3, function() { /* ... */ });

client.on('connect',function(){
    //redis.print,回调函数,将redis的返回值显示出来。上一句执行结果,将返回“OK”
    client.set('author', 'Wilson',redis.print);
    // 设置过期时间 10s后过期
    //client.set('key','value','EX',10)
    client.get('author', redis.print);
    console.log('connect');
});
client.on('ready',function(err){
    console.log('ready');
});

//错误监听?
client.on("error", function (err) {
    console.log("Error " + err);
});

client.hset("hash key", "hashtest 1", "some value", redis.print);
client.hset(["hash key", "hashtest 2", "some other value"], redis.print);
//遍历哈希表"hash key"
client.hkeys("hash key", function (err, replies) {
    console.log(replies.length + " replies:");
    replies.forEach(function (reply, i) {
        console.log("    " + i + ": " + reply);
    });
client.hget("hash key","hashtest 1",redis.print);

//可同时设置多个key,value
client.hmset('hash 1', 'key', 'value111', 'key2', 'value222', 'key3', 'value3', redis.print);
//可同时获取多个key
client.hmget('hash 1', 'key', 'key2', 'key3', redis.print);

/*两种都可以断掉与redis的连接,
end()很粗暴,不管3721,一下子退出来了,上面那句获取哈希表"hash key"的某个元素值的表达式将没有结果返回
而quit()则是先将语句处理完毕再干净地退出,斯文得很
*/
//client.end();
client.quit();
});

运行:

DOS窗口,当前项目目录下,输入

node index.js

  • publish/subscribe(发布/订阅)
代码语言:javascript
复制
const sub = redis.createClient() // 订阅者
const pub = redis.createClient() // 发布者
var msg_count = 0;

sub.on("subscribe", function (channel, count) {
    client.publish("a nice channel", "I am sending a message.");
    client.publish("a nice channel", "I am sending a second message.");
    client.publish("a nice channel", "I am sending my last message.");
});

sub.on("message", function (channel, message) {
    console.log("sub channel " + channel + ": " + message);
    msg_count += 1;
    if (msg_count === 3) {
        sub.unsubscribe();
        sub.quit();
        client.quit();
    }
});

ps aux|grep redis //查看开启的redis kill -9 1245(redis的开启号) //杀死开启程序

参考资料:https://github.com/mranney/node_redis

参考:https://blog.csdn.net/q1512451239/article/details/56488686 https://www.e-learn.cn/content/javascript/1079912

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年01月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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