NodeJS的Redis(一)

160 阅读1分钟

这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战

安装

npm install redis

Redis程序安装后后台启动

下载Redis

redis-server.exe redis.windows.conf 
  • -h: 是指地址127.0.0.1 指的是本地ip,如果是远程的就写远程的地址
  • -p: 这边是端口号默认6379,具体看个人的配置 redis.windows.conf 里面的
  • -a: 密码 同上

客户端通过redis-cli来连接数据库服务器,也可以指定服务器地址和端口,或者安装可视化客户端操作Redis

redis-cli -h 127.0.0.1 -p 6380
ping // 返回PONG说明连通了

Redis数据存储基本使用

字符串

  • set key value 设置key的value
  • get key 得到key的value
  • incr key key如果是整型自增1
  • keys * 得到所有key

对Redis的封装

const config = require("../config/database")
const redis = require('redis');


function SetString(key, value, expireTime) {
  const client = redis.createClient(config.RedisServer.port, config.RedisServer.host, {});

  client.select(0, function () { /* ... */ });
  //错误监听?
  client.on("error", function (err) {
    console.log("Error " + err);
  });
  client.set(key, JSON.stringify(value), redis.print);
  expireTime && client.expire(key, expireTime);
  client.quit();
}

function GetString(key) {
  return new Promise((resolve, reject) => {
    const client = redis.createClient(config.RedisServer.port, config.RedisServer.host, {});

    client.select(0, function () { /* ... */ });
    //错误监听?
    client.on("error", function (err) {
      console.log("Error " + err);
      reject(err)
    });
    // This will return a JavaScript String
    client.get(key, function (err, reply) {
      if (err) reject(err);
      resolve(JSON.parse(reply))
      
      client.quit();
    });
  })
}

function GetTtl(key) {
  return new Promise((resolve, reject) => {
    const client = redis.createClient(config.RedisServer.port,config.RedisServer.host,{});
    client.select(0, function () { /* ... */ });
    //错误监听?
    client.on("error", function (err) {
      if (err) reject(err)
      console.log("Error " + err);
    });
    // This will return a JavaScript String
    client.ttl(key, function (err, reply) {
      if (err) reject(err);
      resolve(reply)
      client.quit();
    });
  })
}

function GetPttl(key) {
  return new Promise((resolve, reject) => {
    const client = redis.createClient(config.RedisServer.port,config.RedisServer.host,{});
    client.select(0, function () { /* ... */ });
    //错误监听?
    client.on("error", function (err) {
      if (err) reject(err)
      console.log("Error " + err);
    });

    client.pttl(key, function (err, reply) {
      if (err) reject(err);
      resolve(reply)
      client.quit();
    });
  })
}

function isExists(key){
  return new Promise((resolve,reject)=>{
    const client = redis.createClient(config.RedisServer.port, config.RedisServer.host, {});
    client.select(1, function () { /* ... */ });
    //错误监听?
    client.on("error", function (err) {
      if (err) reject(err)
      console.log("Error " + err);
    });

    client.exists(key, function (err, reply) {
      if (err) reject(err);
      resolve(Boolean(reply))
      client.quit();
    });
  })
}

exports.SetString = SetString;
exports.GetString = GetString;
exports.GetTtl = GetTtl;
exports.GetPttl = GetPttl;
exports.isExists = isExists;