灏天阁

Node/Koa2[17]: node.js操作redis

· Yin灏

安装 redis 工具

npm i redis -S

redis 连接配置

src/conf/db.js

const { isProd } = require("./utils/env");

let REDIS_CONF = {
  port: 6379,
  host: "127.0.0.1",
};

if (isProd) {
  REDIS_CONF = {
    port: 6379,
    host: "127.0.0.1",
  };
}

module.exports = {
  REDIS_CONF,
};

连接 redis 的方法

src/cache/_redis.js

const redis = require("redis");
const { REDIS_CONF } = require("../conf/db");
// 创建客户端
const redisClient = redis.createClient(REDIS_CONF.port, REDIS_CONF.host);
redisClient.on("error", (err) => {
  console.log("redis error: ", err);
});

function set(key, val, timeout = 60 * 60) {
  if (typeof val === "object") {
    val = JSON.stringify(val);
  }
  redisClient.set(key, vak);
  redisClient.expire(key, timeout);
}

function get(key) {
  return new Promise((resolve, reject) => {
    redisClient.get(key, (err, val) => {
      if (err) {
        reject(err);
        return;
      }
      if (val == null) {
        resolve(null);
        return;
      }
      try {
        resolve(
          JSON.parse(val)
        )
      } catch() {
        resolve(val);
      }
    });
  });
}

module.exports = {
  set,
  get,
};

配置环境变量

src/utils/env.js

const ENV = process.env.NODE_ENV;
module.exports = {
  isDev: ENV === "dev",
  notDev: ENV !== "dev",
  isProd: ENV === "production",
  notProd: ENV !== "production",
  isTest: ENV === "test",
  notTest: ENV !== "test",
};

- Book Lists -