在Koa中使用Redis

2,539 阅读2分钟

Redis 的安装和使用

安装 Redis,以及对 Redis 的基本功能的使用

安装

Redis 的安装文件下载地址:github.com/tporadowski…

image-20210529100935629.png

安装完成后,可以运行 redis-server.exe 启动 Redis 服务器。 (安装, 一直下一步即可)

数据操作

运行 redis-cli.exe,打开 Redis 的命令行客户端。

操作一:向 Redis 中存储一个字符串键值对

set key1 hello   # 存入一个键值对,键为 key,值为字符串 hello

操作二:从 Redis 中获取某个键值对值

get key1            # 得到字符串 hello

操作三:查看 Redis 中所有的键值对 key

keys *          

操作四:向 Redis 中设置一个数字并自增

incr mynum        # mynum 为 1
incr mynum        # mynum 为 2get mynum         # 查看 mynum 结果为 2

【更多操作参考操作命令手册】


在 Koa 中连接 和 调用 Redis

掌握从 Koa 代码中连接 Redis 服务器并操作 Redis 中的数据

使用步骤

  1. 安装 Redis 驱动包

目前主流的 Node.js 的 Redis 驱动包有两个:node-redisioredis,这两个包都有性能非常高、使用方便的特点。而后者的性能更好、功能更强大。

npm i ioredis
  1. 在 koa 中使用 ioredis 连接 Redis 服务器,并发送数据操作命令
const Koa = require('koa')

const app = new Koa()

// 1. 引入 ioredis
const Redis = require('ioredis')

// 2. 创建 Redis 客户端实例, 连接指定的 Redis 服务器
const redis = new Redis({
  port: 6379, // redis服务器默认端口号
  host: '127.0.0.1' // redis服务器的IP地址
})

app.use(async ctx => {
  // 以后思路: 费时的查询, 不用每次都去查, 先看看 redis 中存了没?
  // 如果存了, 直接用缓存的数据, 如果没有存, 就去查询, 并将查询的结果存到 redis 中即可

  // redis.get(key) 查询 (异步)
  // redis.set(key, value) 设置 (异步)
  let result = await redis.get('arrList')

  if (!result) {
    // 没有缓存过, 需要读数据库, 并且将结果缓存起来
    console.log('经过了很久很久的查询')
    const arr = [
      { id: 1, name: 'zs', age: 18 },
      { id: 2, name: 'ls', age: 19 },
      { id: 3, name: 'ww', age: 20 },
      { id: 4, name: 'zl', age: 21 },
    ]
    result = arr
    console.log('缓存到redis中')
    await redis.set('arrList', JSON.stringify(arr))
  } else {
    console.log('直接读缓存')
    result = JSON.parse(result)
  }

  ctx.body = result
})

app.listen(3000, () => console.log('服务器启动成功... 当前端口 3000'))

\