Nestjs缓存

一、安装

yarn add @nestjs/cache-manager cache-manager

 二、使用

1.在module中注册

import { CacheModule } from '@nestjs/cache-manager';

@Module({
  imports: [CacheModule.register({
     ttl: 60000,// 缓存的存活时间,以毫秒为单位。(4版本以秒为单位,5版本以毫秒为单位)
     max:10, // 表示缓存中最大允许存储的项数。
     isGlobal: false, // 是否全局使用
  })]
})

2.在service中使用

import { Inject } from '@nestjs/common';
import { Cache } from 'cache-manager';
import { CACHE_MANAGER } from '@nestjs/cache-manager';

// 在类中的使用构造函数
 constructor(@Inject(CACHE_MANAGER) private cacheManager: Cache) { }

/*
用法:
1.有缓存吗?没有就创建,有就直接返回。
2.缓存问题:数据可能不同步,可以用定时任务去解决,定时更新
*/

// 例子:
async findAll(findAllDto: FindAllDto) {
    // 获取缓存
    const value = await this.cacheManager.get('user');
    if (value) {
      console.log('user有缓存');
      return value;
    } else {
      console.log('user没有缓存');
      // 添加缓存
      await this.cacheManager.set('user', {
        message: '操作成功',
        data: [
          { id: 1, username: '张三', password: '55555' },
          { id: 2, username: '李四', password: '66666' },
          { id: 3, username: '王五', password: '77777' },
        ],
      });
    }
    // 禁用缓存过期  await this.cacheManager.set('key', 'value', 0);
    // 从缓存中删除  await this.cacheManager.del('key');
    // 清除整个缓存  await this.cacheManager.reset();

    return {
      message: '操作成功',
      data: [
        { id: 1, username: '张三', password: '55555' },
        { id: 2, username: '李四', password: '66666' },
        { id: 3, username: '王五', password: '77777' },
      ],
    };
  }

 ok,缓存就是这么简单使用,你学费了吗?

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值