redis在springboot项目中的应用

一,将查询结果放到redis中作为缓存,减轻mysql的压力。

只有在数据量大的时候,查询速度慢的时候才有意义。

本次测试的数据量为XXX.

测试代码: 功能为根据昵称进行模糊匹配。

@GetMapping("/get-by-nick")public String getNickName(String nickName){LambdaQueryWrapper<UserPO> wrapper = new LambdaQueryWrapper<UserPO>().like(UserPO::getNickName,nickName).or().like(UserPO::getUserName,nickName);List<UserPO> userPOS = userMapper.selectList(wrapper);if (userPOS.isEmpty()){return "暂无此人";}return userPOS.toString();}

可以看到大约是耗时10秒左右,这样的性能对用户是不能接受的。

想到加入redis缓存,修改代码,如果redis中没有那么将查询结果存放到redis中。

@GetMapping("/get-by-nick")public String getNickName(String nickName){String key =buildKey(nickName);if(Boolean.TRUE.equals(redisTemplate.hasKey(key))){return redisTemplate.boundValueOps(key).get();}LambdaQueryWrapper<UserPO> wrapper = new LambdaQueryWrapper<UserPO>().like(UserPO::getNickName,nickName).or().like(UserPO::getUserName,nickName);List<UserPO> userPOS = userMapper.selectList(wrapper);if (userPOS.isEmpty()){redisTemplate.boundValueOps(key).set("暂无此人");return "暂无此人";}redisTemplate.boundValueOps(key).set(userPOS.toString());return userPOS.toString();}

第一次测试:

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

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

相关文章

维度建模理论之事实表

事实表概述 事实表作为数据仓库维度建模的核心&#xff0c;紧紧围绕着业务过程来设计。其包含与该业务过程有关的维度引用&#xff08;维度表外键&#xff09;以及该业务过程的度量&#xff08;通常是可累加的数字类型字段&#xff09;。 事实表特点 事实表通常比较“细长”…

Node.js核心命令与工具:提升开发效率的实用指南

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

Redis面试题以及答案

1. 什么是Redis&#xff1f;它主要用来什么的&#xff1f; Redis&#xff0c;英文全称是Remote Dictionary Server&#xff08;远程字典服务&#xff09;&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并…

Python基础入门 --- 7.函数

Python基础入门 第七章&#xff1a; 7.函数 7.1 函数多返回值 按照返回值顺序&#xff0c;写对应顺序的多个变量接收&#xff0c;变量之间用逗号分隔&#xff0c;支持不同数据类型return def test_return():return 1,"hello", Truex, y, z test_return() print…

刷力扣看见一个寻找单身狗的问题?【力扣题解】

今天刷力扣遇到一道有意思的题目&#xff0c;题目是写着撞色问题177 &#xff0c;当我写完这个题去看看有什么好的解题方式的时候&#xff0c;看见一个有趣的题解问题&#xff0c;他对这个题目的描述是几对情侣&#xff0c;带几个单身狗出去玩&#xff0c;然后现在我们要把这几…

天文馆3D可视化:揭秘宇宙星辰的奇幻之旅

在这个科技日新月异的时代&#xff0c;我们似乎离神秘的宇宙越来越近。 天文馆作为普及天文知识、展示宇宙奥秘的重要场所&#xff0c;一直备受人们的喜爱。然而&#xff0c;传统的天文馆展示方式往往局限于平面图片和简单的模型&#xff0c;无法让人真正感受到宇宙的浩瀚与壮丽…

[Java安全入门]五.CC3

一.前言 前几天学了一下cc1和cc6&#xff0c;对于我来说有点小困难&#xff0c;不过经过几天沉淀&#xff0c;现在也是如拨开云雾见青天&#xff0c;经过一上午的复习对cc1和cc6又有深入的了解。所以&#xff0c;今天想多学一下cc3。cc3执行命令的方式与cc1和cc6不一样&#x…

Linux: boot: latency启动延迟分析

https://elinux.org/images/6/64/Chris-simmonds-boot-time-elce-2017_0.pdf https://www.hcltech.com/sites/default/files/documents/resources/whitepaper/files/an_insight_to_optimize_embedded_linux_boot_time_performance.pdf 无意看到这个启动延迟分析&#xff0c;虽…

Java与Go:指针

在计算机内存中&#xff0c;每个变量都有一个唯一的地址&#xff0c;指针就是用来保存这个地址的变量。通过指针&#xff0c;我们可以间接地访问和修改存储在该地址处的数据。今天我们来聊一聊Java和Go指针&#xff0c;预告一下&#xff0c;我们需要借助C语言做一些小小的比较。…

Redis的五种数据类型与常用命令示例

Redis的五种数据类型 String&#xff08;字符串&#xff09;、List&#xff08;列表&#xff09;、Set&#xff08;集合&#xff09;、Hash&#xff08;哈希&#xff09;和Zset&#xff08;有序集合&#xff09;&#xff0c;每种数据类型都有一些常用的操作命令。 1、String类…

【堆】Top-K问题

标题&#xff1a;C语言库函数scanf&#xff08;&#xff09;解读 水墨不写bug &#xff08;图片来源于网络&#xff09; 正文开始&#xff1a; Top-K问题是一类问题的统称&#xff1a; 即根据对象的某一属性&#xff0c;找出这个属性最突出的K个对象&#xff0c;并且通常对象…

专升本 C语言笔记-10 指针数组 和 数组指针

一、数组 和 指针 的区别 数组和指针的介绍1、指针是一个变量&#xff0c;它存储了一个内存地址&#xff0c;该地址指向一个变量的存储位置。2、通过指针&#xff0c;可以访问和修改指向的变量。3、数组是一个由相同数据类型元素组成的集合&#xff0c;可以通过索引来访问和修改…

Linux-网络基础-套接字详细过程

目录 一、数据传输IP地址端口协议网络字节序网络通信--五元组 二、socket套接字1、udp、tcp区别2、套接字接口&#xff08;udp通信程序&#xff09;通信流程&#xff1a;接口代码&#xff08;udp&#xff09; 3、套接字接口&#xff08;tcp通信程序&#xff09;通信流程&#x…

Spring Validation

Spring Validation Spring Validation核心概念核心组件常用注解使用示例高级特性工作原理深入细节实践中的Spring Validation结论 Spring Validation 在现代Web应用开发中&#xff0c;确保用户输入数据的正确性和合法性是至关重要的。Spring Validation作为Spring框架中的一个…

22. UE5 RPG使用MMC根据等级设置血量和蓝量(下)

上一篇&#xff0c;我们实现了玩家角色和敌人的等级的获取&#xff0c;使用MMC的提前工作已经准备完成&#xff0c;那么&#xff0c;这一篇讲一下&#xff0c;如何使用MMC&#xff0c;通过角色等级和体力值设置角色的最大血量。 MMC 全称 Mod Magnitude Calculation&#xff0c…

基于springboot的同城宠物帮养照看平台

技术&#xff1a;springbootmysqlvue 一、背景 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统同城上门喂遛宠物…

Java学习六—面向对象

一、关于面向对象 1.1简介 Java 是一种面向对象编程语言&#xff0c;其核心思想是面向对象编程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;。 面向对象编程是一种程序设计范式&#xff0c;它将数据与操作数据的方法&#xff08;函数&#xff09;捆…

软件工程-第三版王立福-第1章 绪论

本书结合IEEE最新发布的软件工程体系SWEBOK&#xff0c;和IEEE/ACM软件工程学科小组公布的软件工程教育知识体系SEEK&#xff0c;北大本科生指定教材。注重基础知识的系统性&#xff0c;选材的先进性及知识的应用。2009年出版 软件开发本质的认识&#xff0c;两大技术问题&…

JUnit5的条件测试、嵌套测试、重复测试

条件测试 JUnit5支持条件注解&#xff0c;根据布尔值判断是否执行测试。 自定义条件 EnabledIf和DisabledIf注解用来设置自定义条件&#xff0c;示例&#xff1a; Test EnabledIf("customCondition") void enabled() { // ... } Test DisabledIf("cust…

代码随想录算法训练营第五十一天|动态规划|309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费、总结

309.最佳买卖股票时机含冷冻期 文章 给定一个整数数组&#xff0c;其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;: 你不能同时参与多笔…