nestJs链接redis

news2025/2/26 18:49:38

给大家推荐一个库,地址:Yarn

 

service

import { Injectable } from '@nestjs/common';
import { RedisService as RedisServices, DEFAULT_REDIS_NAMESPACE } from '@liaoliaots/nestjs-redis';
import Redis from 'ioredis';

@Injectable()
export class RedisService {
    private readonly redis: Redis;

    constructor(private readonly redisService: RedisServices) {
        this.redis = this.redisService.getClient(DEFAULT_REDIS_NAMESPACE);
    }

    async set(key: string, value: string): Promise<boolean> {
        try {
            await this.redis.set(key, value);
            return true;
        } catch (error) {
            console.error('设置键值对出错:', error);
            return false;
        }
    }

    async get(key: string): Promise<string | null> {
        try {
            return await this.redis.get(key);
        } catch (error) {
            console.error('获取值出错:', error);
            return null;
        }
    }

    async del(key: string): Promise<boolean> {
        try {
            await this.redis.del(key);
            return true;
        } catch (error) {
            console.error('删除键出错:', error);
            return false;
        }
    }

    // push方法接受一个键和一个值数组作为参数
    async leftPushAll(key: string, values: any[]): Promise<boolean> {
        try {
            await this.redis.lpush(key, ...values);
            return true;
        } catch (error) {
            console.error(error);
            return false;
        }
    }

    // Pop
    async rightPop(key: string): Promise<any> {
        try {
            if (!key) return null;
            return await this.redis.rpop(key);
        } catch (error) {
            console.error(error);
            return null;
        }
    }

    // 


}

controller

import { Controller, Get } from '@nestjs/common';
import { ApiOperation, ApiTags } from '@nestjs/swagger';
import { RedisService } from './redis.service';


@ApiTags('redis')
@Controller('redis')
export class RedisController {
    constructor(private readonly redisService: RedisService) { }


    @ApiOperation({ summary: 'Setredis测试' })
    @Get("/redis")
    setRedisInfo() {
        return this.redisService.set('qvfan', 'hello redis');
    }


    @ApiOperation({ summary: 'Getredis测试2' })
    @Get("/redis2")
    getRedisInfo() {
        return this.redisService.get('qvfan');
    }

    @ApiOperation({ summary: 'Delredis测试' })
    @Get("/redis3")
    delRedisInfo() {
        return this.redisService.del('qvfan');
    }

    @ApiOperation({ summary: 'lpushredis测试' })
    @Get("/redis4")
    lpushRedisInfo() {
        return this.redisService.leftPushAll('qvfan', ['11212144', '11212145']);
    }

    @ApiOperation({ summary: 'rpopredis测试' })
    @Get("/redis5")
    rpopRedisInfo() {
        return this.redisService.rightPop('qvfan');
    }
}

效果和java一样丝滑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1682123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

入职java开发第一天,不会VUE竟然被.........

Vue2 技术栈 第 1 章&#xff1a;Vue 核心1.1. Vue 简介1.1.1. 官网1.1.2. 介绍与描述1.1.3. Vue 的特点1.1.4. 与其它 JS 框架的关联1.1.5. Vue 周边库 1.2. 初识 Vue1.3. 模板语法1.3.1. 效果1.3.2. 模板的理解1.3.3. 插值语法1.3.4. 指令语法 1.4. 数据绑定1.4.1. 效果1.4.2…

012.使用传统.NET事件进行通知操作

Rx的目标是协调和编排来自各种来源的基于事件的异步计算&#xff0c;如社交网络、传感器、UI事件等。例如&#xff0c;建筑物周围的安全摄像头&#xff0c;以及当有人可能在建筑物附近时触发的运动传感器&#xff0c;会向我们发送最近摄像头的照片。Rx还可以统计包含选举候选人…

关爱内向儿童:理解与支持助力成长

引言 每个孩子都是独特的&#xff0c;有些孩子天生性格外向&#xff0c;善于表达&#xff0c;而有些孩子则比较内向&#xff0c;喜欢独处。内向并不是缺点&#xff0c;而是一种性格特质。然而&#xff0c;内向的孩子在社交和学习过程中可能会面临一些挑战。本文将探讨内向儿童…

光伏运维系统在光伏电站的应用

摘要&#xff1a;全球化经济社会的快速发展,加快了传统能源的消耗,导致能源日益短缺,与此同时还带来了严重的环境污染。因此,利用没有环境污染的太阳能进行光伏发电获得了社会的普遍关注。本文根据传统式光伏电站行业的发展背景及其监控系统的技术设备,给出了现代化光伏电站数据…

Python 机器学习 基础 之 监督学习 【分类器的不确定度估计】 的简单说明

Python 机器学习 基础 之 监督学习 【分类器的不确定度估计】 的简单说明 目录 Python 机器学习 基础 之 监督学习 【分类器的不确定度估计】 的简单说明 一、简单介绍 二、监督学习 算法 说明前的 数据集 说明 三、监督学习 之 分类器的不确定度估计 1、决策函数 2、预测…

20232831 袁思承 2023-2024-2 《网络攻防实践》第10次作业

目录 20232831 袁思承 2023-2024-2 《网络攻防实践》第10次作业1.实验内容2.实验过程&#xff08;1&#xff09;SEED SQL注入攻击与防御实验①熟悉SQL语句②对SELECT语句的SQL注入攻击③对UPDATE语句的SQL注入攻击④SQL对抗 &#xff08;2&#xff09;SEED XSS跨站脚本攻击实验…

github新手用法

目录 1&#xff0c;github账号注册2&#xff0c;github登录3&#xff0c;新建一个仓库4&#xff0c;往仓库里面写入东西或者上传东西5&#xff0c; 下载Git软件并安装6 &#xff0c;获取ssh密钥7&#xff0c; 绑定ssh密钥8&#xff0c; 测试本地和github是否联通9&#xff0c;从…

防火请技术基础篇:令牌桶机制的剖析与应用

防火墙中的令牌桶机制&#xff1a;深度剖析与应用 在现代网络通信中&#xff0c;防火墙技术发挥着至关重要的作用&#xff0c;它不仅能够实现网络安全防御&#xff0c;还能通过诸如令牌桶算法等机制来有效管理网络流量&#xff0c;保证网络服务的质量。本文将全面深入地探讨防…

Linux(十) 线程,线程控制

目录 一、认识线程 1.1 线程是什么 1.2 为啥要有线程 并行与并发 为什么要有线程(线程的优点) 为什么线程的切换成本更低 1.3 线程的缺点 1.4 线程和进程的区别 二、线程控制 2.1 线程创建 进程ID和线程ID 2.2 线程终止 2.3 线程等待 2.4 线程分离 三、注意 一、…

医院污水一体化处理设备有哪些

医院污水一体化处理设备通常包括以下几个主要组件&#xff1a; 预处理单元&#xff1a;用于去除污水中的固体悬浮物、颗粒物、油脂等&#xff0c;常见的预处理单元包括格栅、沉砂池、油水分离器等。生物处理单元&#xff1a;用于降解有机物质和去除氮、磷等营养物质。常见的生物…

教程:在 Apifox 中将消息通知集成到钉钉、飞书等应用

Apifox 支持将「消息通知」集成到第三方应用平台&#xff0c;包括企业微信、钉钉、飞书、Webhook 和 Jenkins。具体可在项目的【项目设置 -> 通知设置 -> 外部通知】里新建一个通知事件&#xff0c;然后在弹出的界面中配置即可。 在配置界面可以选择需要的触发事件&#…

机器学习-SVM预测

本文使用机器学习SVM对数据进行预测。仅供参考 1、数据 1.1 训练数据集&#xff1a; medol.xlsx文件示例 otv3015-1.9153622093018-1.9634097763021-1.7620284083024-1.789477583 1.2 预测数据集 test.xlsx文件示例 ot35163519 2、模型训练 train.py import pandas as …

国内常用的项目管理软件有哪些?六大企业级项目管理软件大盘点

一、 奥博思 PowerProject 项目管理软件 官方网址&#xff1a;http://www.powerproject.com.cn 北京奥博思软件技术有限公司自成立以来&#xff0c;一直专注于企业级项目管理软件的开发及解决方案&#xff0c;致力于为各类企业&#xff08;制造业、IT交付、金融、汽车及汽车零…

【工具】macOS、window11访问limux共享目录/共享磁盘,samba服务安装使用

一、samba服务安装 Samba是一个免费的开源软件实现&#xff0c;使得非Windows操作系统能够与Windows系统进行文件和打印服务共享。它实现了SMB/CIFS协议&#xff0c;并且能够在Linux、Unix、BSD等多种系统上运行。 安装 samba&#xff1a; sudo yum install samba配置 samba…

通过阿里云的PAI基于开源LLM搭建RAG检索增强对话系统

5月9日参加阿里云AI云峰会活动&#xff0c;学习了下如何借助阿里云的PAI服务进行搭建RAG检索增加对话系统。 前提&#xff1a; 为了方便省钱&#xff0c;建议先通过免费的优惠圈&#xff0c;这样就可以先不花钱学习一下啦。开始实验之前&#xff0c;请务必打开 阿里云免费试用…

VUE 滚动到指定区域scrollIntoView

背景&#xff1a;当前 VUE 页面数据量很大&#xff0c;右侧出现滚动条, 进入该页面&#xff0c;页面定位到指定区域&#xff1b; 项目要求&#xff1a; 进入页面&#xff0c;定位到指定行&#xff08;红色标记&#xff09; 直接看效果&#xff1a; 代码demo&#xff1a; <…

堆的概念及结构

目录 堆的性质&#xff1a; 堆的实现 堆向下调整算法 堆的创建 堆的插入 堆的删除 堆的应用 堆排序 对比冒泡的优势&#xff1a; 代码 头文件 源文件 如果有一个关键码的集合K { &#xff0c; &#xff0c; &#xff0c;…&#xff0c; }&#xff0c;把它的所有元…

操作系统磁盘管理类问题

例题&#xff1a;在磁盘上存储数据的排列方式会影响1/0服务的总时间。假设每个磁道被划分成10个物理块&#xff0c;每个物理块存放1个逻辑记录。逻辑记录R1,R2....R10存放在同一个磁道上&#xff0c;记录的排列顺序如下表所示&#xff1a; 假定磁盘的旋转速度为10ms/周&#xf…

问界新M5交付,「975」组合站稳中国豪华智电定位

‍作者 |老缅 编辑 |德新 5月15日&#xff0c;问界新M5已正式开启全国用户交付。从网传图片可以看到&#xff0c;华为余承东以及赛力斯AITO问界BU总裁何利扬亲自出席了首批交车仪式。 4月23日&#xff0c;在不到1个月前&#xff0c;新M5发布。新M5共推出三款车型&#xff1a; …