linux中nodejs如何使用_NodeJS 程序中使用 Redis

本文介绍了如何在Linux环境下使用NodeJS连接和操作Redis进行数据缓存。首先讲述了本地Windows上的Redis安装步骤,然后讲解了在NodeJS程序中添加Redis依赖包,启动Redis服务,以及如何进行数据的异步操作。最后提到了在Linux生产环境中Redis的启动配置和注意事项。
摘要由CSDN通过智能技术生成

由于国庆期间老婆大人突然在车上看见前面车牌灵魂发问说 湘F 是哪里 ?我哪知道在哪,我只能回了句:我也不晓得?。为了避免再次发生类似的灵魂发问,我就写了个微信小程序方便查询,机智?
数据都是在网上爬取,如果有兴趣了解怎么爬可以查看上篇文章 [「NodeJS 爬新闻」];数据爬取下来后,发现可以增加查询地点基本信息的功能,嗯,感谢百度百科。
由于考虑到是实时爬取数据,我想这些地点信息可能是万年不变,所以就引入了 「Redis」 缓存来处理。

本地安装

本地使用 win 10 系统。

  • 下载对应的程序,解压到本地
  • 进入目录运行命令 ./redis-server.exe redis.windows.conf

fd51229ece7426ddffa2746fb81615a5.png具体 Redis 的安装可以查看 菜鸟教程

程序依赖包

下载 redis 安装包

yarn add redis

开启服务

引用对应的包,连接服务

const redis = require('redis');
const redisClient = redis.createClient({
 host: '127.0.0.1', // 默认 host
  port: '6379' // 默认端口
});

数据操作

可以使用 promisify 来包装操作变成异步函数

const redis = require('redis');
const { promisify } = require("util");
const config = require('../config');

const redisClient = redis.createClient(config.REDIS_PORT);

redisClient.on("error", function (err) {
  console.log("Error " + err);
});

function Client() {
  this.set = promisify(redisClient.set).bind(redisClient);
  this.get = promisify(redisClient.get).bind(redisClient);
  return this;
}

const client = new Client();

module.exports = client

在需要操作数据时引用操作

const redisStore = require('../utils/redis');

const getBaike = async (site) => {
  console.log(`site: ${site}`);
  if (!site) {
    return null;
  }
  ...
  const data = {
    introduce,
    basicInfo
  };
  await redisStore.set(site, JSON.stringify(data));
  return data;
};

module.exports = async (ctx, next) => {
  await next();
  const { site } = ctx.query;
  const cacheData = await redisStore.get(site);
  const baike = cacheData ? JSON.parse(cacheData) : await getBaike(site);
  ctx.type = 'json';
  ctx.body = {
    baike
  }
}

一个简单的 Redis 服务操作就完成了。

注意

由于生产环境是 Linux,启动 Redis 服务时不可能还是这种前端启动模式,故我们需要修改 redis.conf 配置, daemonize yes 以后端模式启动。6e98ffaceb309a92c13567351f16969e.png再次执行启动服务

cd /opt/redis
./bin/redis-server ./redis.conf

连接 redis

/opt/redis/bin/redis-cli
8253a7fc72a7f265f35f93895f33bf96.png

最后

利用自己掌握的知识来解决生活中碰到的一些问题,感觉还不错,大家可以体验下或者有好的想法,大家一起交流。2e7ac75f6aef05a6ba7d6488bb998275.png「参考:」

  • Linux下redis安装和部署
  • Redis 教程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值