全栈开发技术分享
首页
👉 CSS大揭秘 👈
  • 目录
  • 分类
  • 标签
  • 归档
  • Vue
  • JavaScript
  • 微信开发
  • 移动端H5调试工具
  • 国内十大前端团队网站
  • Nodejs
  • Egg
  • 环境搭建
  • 运维面板
  • 域名配置
  • Nginx
  • 收藏
  • 常用工具
  • 实用技巧
  • 常用命令
  • 友情链接
关于

Dreaming Lee 🍍 ҉҉҉҉҉҉҉҉

开发小菜鸡
首页
👉 CSS大揭秘 👈
  • 目录
  • 分类
  • 标签
  • 归档
  • Vue
  • JavaScript
  • 微信开发
  • 移动端H5调试工具
  • 国内十大前端团队网站
  • Nodejs
  • Egg
  • 环境搭建
  • 运维面板
  • 域名配置
  • Nginx
  • 收藏
  • 常用工具
  • 实用技巧
  • 常用命令
  • 友情链接
关于
  • Nodejs

    • Nodejs学习参考资料
  • Egg

    • 扩展

      • Egg使用egg-redis
        • Redis简介
        • egg-redis
        • 安装
        • 启用redis插件:
        • 配置
          • 单数据源
          • 多数据源
        • 使用
          • 单数据源
          • 多数据源
        • 常用操作
      • Egg定时任务
    • 解决方案

      • Egg解决post请求报错invalid csrf token
      • Egg接口返回字段名下划线转驼峰
    • 实战

      • Egg定时任务实现企业微信群机器人定时推送
  • Redis

    • Redis基础知识
  • 后台
  • Egg
  • 扩展
Dreaming Lee 🍍 ҉҉҉҉҉҉҉҉
2021-04-02

Egg使用egg-redis

# Redis简介

REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。

Redis 通常被称为数据结构服务器,因为值(value)可以是 字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets) 等类型。

# egg-redis

github:egg-redis (opens new window)

Egg框架下基于 ioredis 的Redis客户端(支持Redis Portocal),如果你想了解更多用法,可以参考 ioredis (opens new window)的文档。

# 安装

npm i egg-redis --save
1

或者使用 yarn 进行安装

yarn add egg-redis --save
1

# 启用redis插件:

// config/plugin.js
exports.redis = {
  enable: true,
  package: 'egg-redis',
};
1
2
3
4
5

# 配置

在 config/config.${env}.js 配置各个环境的redis连接信息

# 单数据源

config.redis = {
  client: {
    port: 6379,          // Redis port
    host: '127.0.0.1',   // Redis host
    password: 'auth',
    db: 0,
  },
}
1
2
3
4
5
6
7
8

# 多数据源

config.redis = {
  clients: {
    foo: {                 // instanceName. See below
      port: 6379,          // Redis port
      host: '127.0.0.1',   // Redis host
      password: 'auth',
      db: 0,
    },
    bar: {
      port: 6379,
      host: '127.0.0.1',
      password: 'auth',
      db: 1,
    },
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 使用

# 单数据源

可以在 controller 中使用 app.redis 获取redis实例,查看ioredis (opens new window)更多用法。

// app/controller/home.js

module.exports = app => {
  return class HomeController extends app.Controller {
    async index() {
      const { ctx, app } = this;
      // set
      await app.redis.set('foo', 'bar');
      // get
      ctx.body = await app.redis.get('foo');
    }
  };
};
1
2
3
4
5
6
7
8
9
10
11
12
13

# 多数据源

如果配置了多个redis,可以通过 app.redis.get(instanceName) 来获取redis实例,具体用法:

// app/controller/home.js

module.exports = app => {
  return class HomeController extends app.Controller {
    async index() {
      const { ctx, app } = this;
      // set
      await app.redis.get('instance1').set('foo', 'bar');
      // get
      ctx.body = await app.redis.get('instance1').get('foo');
    }
  };
};
1
2
3
4
5
6
7
8
9
10
11
12
13

# 常用操作

// get
const foo = await app.redis.get(key)

// set
await app.redis.set(key, value)
// set同时设置有效期,单位:秒
await app.redis.set(key, value, 'EX', seconds)
// 设置有效期
await app.redis.expire(key, seconds)

// 删除
await app.redis.del(key)

// 删除所有 !!!慎用
await app.redis.flushall()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#Redis
上次更新: 2021-05-10 14:08:54
Nodejs学习参考资料
Egg定时任务

← Nodejs学习参考资料 Egg定时任务→

最近更新
01
【uniapp】字节小程序BUG - “navigateToMiniProgram/getUserProfile:fail must be invoked by user tap gesture”
06-21
02
七牛云上传自有证书
04-27
03
使用腾讯云申请免费SSL证书
04-27
更多文章>
Theme by Vdoing | Copyright © 2020-2024 | 豫ICP备2020030395号 | 靳立祥 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式