前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >文章翻译:Node.js和Redis入门-安装与命令

文章翻译:Node.js和Redis入门-安装与命令

作者头像
治电小白菜
修改2023-09-23 15:10:07
1.1K0
修改2023-09-23 15:10:07
举报
文章被收录于专栏:技术综合技术综合

原文标题:Node.js and Redis tutorial – Installation and commands 作者:Shahid (UnixRoot) Shaikh 翻译:治电小白菜 原文地址:https://codeforgeek.com/2016/06/node-js-redis-tutorial-installation-commands/ 译者注:发现这篇文章很棒,所以就翻译了,能力有限,有错误可以指出。 我的学习代码:https://github.com/klren0312/node_redis_study

Redis是一个高性能的内存数据库,用作数据结构存储。Redis支持hash,string,lists和其他复杂的数据结构,并且能保持很高的性能。

Nodejs中,Redis可以被用来解决各种各样的问题,比如缓存服务器或者信息代理。在这个入门里,我们将介绍nodejs中受欢迎以及有用的Redis命令。

在我们开始前,让我们来看看Redis在不同平台上的安装。

安装Redis

在MAC和Linux上安装Redis,你可以手动安装,像这里介绍的一样,或者你可以很懒像我一样,试用这些命令来安装它

Ubuntu

代码语言:javascript
复制
sudo apt-get install redis-server

Mac 上使用 brew

代码语言:javascript
复制
brew install redis

Window没有Redis团队的官方安装包,但是这儿有一些你可以用在你机子上的可用端口(译者注:https://github.com/MicrosoftArchive/redis) 在安装之后,你可以使用下面的命令来启动Redis服务

代码语言:javascript
复制
redis-server

你应该会看到下面的画面

要进入Redis命令行,要单独在另一个命令行框中(上面的命令行框不要关),输入下面的命令

代码语言:javascript
复制
redis-cli

你应该能看到下面的画面

尝试去运行“PING”命令,你应该可以接收到“PONG"命令

配置Nodejs和Redis

NodeRedis是非常流行和高性能的Node.js Redis客户端。它几乎以很高性能地支持Redis的每一个语法。

用下面命令,来使你的项目支持NodeRedis

代码语言:javascript
复制
npm i --S redis

要在Node.js中使用它,你需要创建一个Redis客户端。这里是一个代码片段。

代码语言:javascript
复制
var redis = require('redis');
var redisClient = redis.createClient({host : 'localhost', port : 6379});

redisClient.on('ready',function() {
 console.log("Redis is ready");
});

redisClient.on('error',function() {
 console.log("Error in Redis");
});

将上面的代码保存到名为app.js的文件中,以及使用下面的命令来运行它

代码语言:javascript
复制
node app.js

如果Redis是开启的以及在运行,你应该可以看到下面的画面

如果你想要加入更多有关Redis连接的配置参数,这儿由一个支持的列表

Redis的身份验证

这只有当你的Redis服务需要通过认证被保护的时候需要。你必须在连接上Redis使用下面的语法来验证身份:

代码语言:javascript
复制
redisClient.auth('password', function(err,reply){
    console.log(reply);
});

保存键值对数据到Redis

我们建立了Node.js和Redis连接,以及相互通信,让我们来保存一些数据进去。就像我们在文章开头提到的,Redis通过键值对来对数据进行存储。让我们来看下他们吧:

存储字符串

可以使用下面的命令来保存一个简单的字符传

代码语言:javascript
复制
redisClient.set("language","nodejs")

在这里"language"是键,"nodejs"是值。在这个命令运行之后,你可以通过下面的命令,在Redis中查看

代码语言:javascript
复制
GET language

回调是可以配置的,如果你想要收到命令的结果,你可以像下面一样,提供一个回调

代码语言:javascript
复制
redisClient.set("language","nodejs",function(err,reply){
    cnosole.log(err);
    console.log(reply);
})

在检索键值时,你也可以运行Redis GET命令,带上回调或者不带

代码语言:javascript
复制
redisClient.get("language",function(err,reply){
    console.log(err);
    console.log(reply);
})

存储对象(Hash)

如果你想要存储像下面这些的数据

代码语言:javascript
复制
{
 "webserver" : "expressjs",
 "database" : "mongoDB",
 "devops" : "jenkins"
}

Redis支持存储他们在一个快照(键)中,而不是存储位字符串对。我们可以使用hmset()命令来将这样的hash存入Redis中。

代码语言:javascript
复制
redisClient.hmset("tools","webserver","expressjs","database","mongoDB","devops","jenkins",function(er$
 console.log(err);
 console.log(reply);
});

redisClient.hgetall("tools",function(err,reply) {
 console.log(err);
 console.log(reply);
});

存储List和Set

你也可以存储像List和Set一样复杂的数据结构。在Set和List中唯一不同的时,List可以存储重复的字段而Set不能。 下面是相关代码。第一个参数是Set和List的名称

代码语言:javascript
复制
redisClient.rpush(["languages","angularjs","nodejs","go"],function(err,reply) {
 console.log(err);
 console.log(reply);
});

redisClient.sadd(["devopstools","jenkins","codeship","jenkins"],function(err,reply) {
 console.log(err);
 console.log(reply);
});

下面是输出结果

代码语言:javascript
复制
null
3//List数据个数
null
2//set数据个数

可以看到Set中,存入的数据个数是3,但是我们实际看到的是2,因为由2个Jenkins的值是重复的,被过滤了。

操作键值对

在存储了键值后,Redis还允许你处理它们,比如删除键,查询是否存在以及设置失效时间。

查看键是否存在

你可以使用exist()函数来检测键是否存在。

代码语言:javascript
复制
redisClient.exists('language',function(err,reply) {
 if(!err) {
  if(reply === 1) {
   console.log("Key exists");
  } else {
   console.log("Does't exists");
  }
 }
});

删除键

你可以使用del()函数来从Redis中删除键

代码语言:javascript
复制
redisClient.del('redisClient',function(err,reply) {
 if(!err) {
  if(reply === 1) {
   console.log("Key is deleted");
  } else {
   console.log("Does't exists");
  }
 }
});

设置键的失效时间

你也可以设置键的失效时间。一旦失效时间到了,Redis将自动删除那个键,你将它用到Session的存储上是非常有效的。 你可以使用expire()函数来做这件事:

代码语言:javascript
复制
redisClient.expire('redisClient', 30); // 失效时间为30秒.

监控Redis

Redis提供其操作发生的实时反馈。可以使用下面的命令,来使用和追踪它

代码语言:javascript
复制
redis-cli monitor

总结

我们介绍了Redis的基础以及安装和使用很多命令。这儿有更多的Redis特性,比如聚类等,也有很多的命令你可以去学习。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装Redis
    • Ubuntu
      • Mac 上使用 brew
      • 配置Nodejs和Redis
        • Redis的身份验证
        • 保存键值对数据到Redis
          • 存储字符串
            • 存储对象(Hash)
              • 存储List和Set
              • 操作键值对
                • 查看键是否存在
                  • 删除键
                    • 设置键的失效时间
                    • 监控Redis
                    • 总结
                    相关产品与服务
                    云数据库 Redis
                    腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档