Redis缓存与从数据取数据性能比较

2023-09-22 14:08:13

Redis缓存与从数据取数据性能比较

为什么使用Redis

使用Redis缓存数据有多个原因,包括提高性能、降低数据库负载、减少响应时间和支持临时数据存储等。以下是一些主要原因以及Redis缓存的工作原理和好处:

1. 提高性能: 数据库查询通常是一个相对较慢的操作,特别是当数据库中的数据量很大时。通过将常用的数据存储在Redis缓存中,可以大大提高读取数据的速度,因为Redis以内存为基础,读写速度非常快。

2. 降低数据库负载: 当大量请求同时访问数据库时,数据库服务器的负载会增加。通过使用Redis缓存,可以减少对数据库的频繁查询,从而减轻数据库服务器的负载,提高其稳定性和可扩展性。

3. 减少响应时间: 缓存可以减少客户端请求的响应时间。当需要访问的数据已经在Redis缓存中存在时,不必执行昂贵的数据库查询,直接从缓存中获取数据,这可以显著减少响应时间。

4. 支持临时数据存储: Redis支持设置键的过期时间,这意味着您可以将数据存储在Redis中,并为其设置一个超时时间。这对于存储临时性数据非常有用,如会话数据、验证码等。一旦数据不再需要,它会自动从Redis中移除,不需要手动清理。

Redis的工作原理:

Redis是一个内存键值存储数据库,它将数据存储在内存中,因此读取和写入数据非常快速。以下是Redis的基本工作原理:

  1. 数据存储: Redis使用键值对的方式存储数据,每个键都关联一个特定的值。这些值可以是字符串、列表、集合、哈希表等。

  2. 内存存储: Redis将数据存储在内存中,这使得数据的读取和写入非常快速。但要注意,由于内存是有限的,因此Redis适用于相对较小的数据集。为了处理更大的数据集,可以使用Redis的持久化机制将数据定期写入磁盘。

  3. 缓存淘汰策略: 当Redis的内存用尽时,它可以根据一些缓存淘汰策略来自动清理不再使用的数据,以腾出内存空间。这可以防止内存溢出。

  4. 持久化: Redis支持持久化,可以将数据保存到磁盘,以便在服务器重启时恢复数据。有两种主要的持久化方式:RDB快照和AOF日志。

数据测试

单独从数据取8000左右条数据

单独从数据库读取

接口代码

@GetMapping("/get")
    public BaseResponse<List<Sentences>> get(){
        System.out.println(UserHolder.getValue());
        return ResultUtils.success(sentencesService.list());
    }

直接读取的速度如图

在这里插入图片描述

利用Redis读取

接口逻辑:如果是首次获取那么从数据库获取,从数据库获取后会把数据返回给前端,同时会把数据存储到Redis中进行缓存。而如果Redis中有数据的话,那么就会直接从Redis中提取数据,并且返回给前端。

接口代码:

 @GetMapping("/getByRedis")
    public BaseResponse<List<Sentences>> getByRedis(){
        System.out.println(UserHolder.getValue());
        String sentencesConstant = "test:redis:sentences";
        List<Sentences> sentencesList = (List<Sentences>)redisTemplate.opsForValue().get(sentencesConstant);
        if(sentencesList == null || BeanUtil.isEmpty(sentencesList)){
            List<Sentences> result = sentencesService.list();
            redisTemplate.opsForValue().set(sentencesConstant,result,30, TimeUnit.MINUTES);
            return ResultUtils.success(result);
        }
        redisTemplate.expire(sentencesConstant,30,TimeUnit.MINUTES);
        return ResultUtils.success(sentencesList);
    }

第一次请求所用时间

在这里插入图片描述

第二、三次

在这里插入图片描述
在这里插入图片描述

这样子利用Redis缓存速度确实会快很多

更多推荐

图像相似度识别算法aHash|dHash|PHash

图像相似度识别算法aHash|dHash|PHashaHash算法基本原理优缺点python实现dHash算法基本原理优缺点python代码实现aHash\pHash\dHash是常用的图像相似度识别算法,原理简单、实现方便。aHash算法Hash算法进行图片相似度识别的本质,就是将图片进行Hash转换,生成一组二进制

Docker安装MongoDB

1、查看当前可用版本dockersearchmongo#通过该命令查看可用的MongoDB版本2、获取最新的mongodb镜像dockerpullmongo3、查看镜像dockerimages4、在宿主机上创建需要挂载的文件#创建文件mkdir-p/docker/mongodb/{data,logs}#在准备挂载的目录

【Mysql】MySQL 设计开发规约

MySQL设计开发规约以下规范在大型互联网公司经过了充分的验证,尤其适用于并发量大、数据量大的业务场景。安全无小事,很多公司都曾经因为数据泄露导致用户损失惨痛,所以将安全规范放到了第一位。一、安全规范1.【强制】禁止在数据库中存储明文密码,需把密码加密后存储。说明:对于加密操作建议由公司的中间件团队基于如mybatis

2023年8月京东美妆工具行业数据分析(京东数据运营)

近日,随着李佳琦为花西子品牌怒怼网友一事持续发酵,消费者的目光逐渐转移到这个国货美妆品牌昂贵的单克价格上。“一克眉笔价格高于一克黄金”,引发了不少消费者的讨论与吐槽。花西子眉笔事件尚未平息,在9月12日,一网友晒出之前自己买的花西子化妆刷,实付款919元。套刷是玉石化妆刷(5件套),人造纤维毛,目前官方旗舰店已没有售卖

设计模式之职责链模式

职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。这里发出这个请求的客户端并不知道这当中的哪一个对象最终处理这个请求,这些系统的更改可以在不影响客户端的情况下动态地重新组织和分配责任。ConcreteHandler

将自己的代码发布成可以pip安装的包

要将自己的Python代码打包并通过pip进行安装,可以按照以下步骤进行操作:创建一个新的文件夹,并将您的Python代码放入其中。确保您的代码结构是标准的Python包结构,即包含__init__.py文件和其他可能的模块文件。结构示例:your_package_name/__init__.pymodule1.pym

2023世界元宇宙大会进行时,智汇云舟携视频孪生技术与产品亮相

9月20日-22日,由中国仿真学会、中国指挥与控制学会和北京理工大学共同主办的“2023第二届世界元宇宙大会”在上海隆重举行。智汇云舟作为探索元宇宙前沿科技的优秀企业代表受邀参会,并携视频孪生技术与产品在特装展区惊艳亮相。图:大会现场智汇云舟展位本届大会以“虚实相生、产业赋能”为主题,邀请到110多位国内外专家、院士和

如何利用播放器节省20%点播成本

点播成本节省的点其实涉及诸多部分,例如:CDN、转码、存储等,而利用播放器降本却是很多客户比较陌生的部分。火山引擎基于内部支撑抖音集团相关业务的实践,播放器恰恰是成本优化中最重要和最为依赖的部分。火山引擎的视频团队做了份数据统计,在一个很经典的视频业务中,我们在2022年至2023年大约1年半的时间里,针对这个业务进行

el-calendar日历 简易排班

公司物流部要个简易的排班功能,由主管去设置线路,线路绑定上负责人。然后直接往日历里添加。1、隐藏了自带的切换月份,改用了日期选择器。2、禁用了非本月的点击事件,防止点击自动跳转到其他月份。3、添加了点击多选,批量处理,也有单日排班处理。4、拖拽删除排班,代码如下exportfunctiongetFirstDay(mon

一定要知道的 NOI 大纲(2023年修订版)变化

近日,中国计算机学会(CCF)正式发布了《NOI大纲(2023年修订版)》,明确地给出了竞赛的知识范围。CCF于2021年制定完成并首次发布了NOI大纲,大纲发布后,对竞赛组织、教师教学和选手学习发挥了很好的引导作用。根据NOI大纲制定之初的安排,大纲每两年修订一次。CCF最新发布的NOI大纲(2023年修订版),是N

信创办公–基于WPS的EXCEL最佳实践系列 (限制可录入内容)

信创办公–基于WPS的EXCEL最佳实践系列(限制可录入内容)目录应用背景操作过程1、数据有效性(支出证明单)2、如何完成数据有效性的使用(差旅报销申请表)3、清除数据验证4、利用圈释无效数据,验证已输入数据的有效性。5、灵活性调整数据有效性。应用背景本章内容主要讲解:如何在WPS上利用excel去获取数据,如何通过手

热文推荐