当前位置: 首页 > news >正文

系列十一、Redis中分布式缓存实现

一、缓存

1.1、什么是缓存

        内存就是计算机内存中的一段数据。

1.2、内存中的数据特点

  • 读写快
  • 断电数据丢失

1.3、缓存解决了什么问题

  • 提高了网站的吞吐量和运行效率
  • 减轻了数据库的访问压力

1.4、哪些数据适合加缓存

        使用缓存时,一定是数据库中的数据极少发生改变,更多用于查询这种情况。例如收获地址:省市县村

1.5、本地缓存和分布式缓存

  • 本地缓存:存储在应用服务器内存中的数据称之为本地缓存(local cache)
  • 分布式缓存:存储在当前应用服务器内存之外的数据称之为分布式缓存(distribute cache)
  • 集群:将同一种服务的多个节点放在一起共同为系统提供服务的过程称之为集群
  • 分布式:由多个不同的服务集群共同对系统提供服务,那么这个系统就被称之为分布式系统(distribute  system)

二、缓存优化

2.1、Key优化

        当前使用Redis作为分布式缓存的情况下,默认生成的hashKey太长,如下:怎么样对Key进行优化,使生成的Key简洁一些?

-1179870921:3186541116:org.star.mapper.EmployeeMapper.getDetail:0:2147483647:select e.id,e.name,d.department_name from employee e,department d where e.department_id = d.id and e.id = ?:2:SqlSessionFactoryBean

2.2、MD5的特点

  • 一切文件字符串再经过MD5加密后,都会生成32位的16进制字符串
  • 不同内容的文件经过MD5加密后,加密结果一定不一致
  • 相同内容的文件经过多次MD5加密后,结果始终一样

2.3、解决方案

        在Redis整合MyBatis的过程中,建议将Key使用MD5进行优化处理。

三、面试相关

3.1、什么是缓存穿透(击穿)

        客户端查询了一个数据库中没有的记录,导致缓存在这种情况下无法利用,称之为缓存穿透(缓存击穿)。

3.2、MyBatis是如何解决缓存穿透的

        将数据库中没有查询到的结果,也进行缓存。

3.3、什么是缓存雪崩

        在系统运行的某一时刻,突然系统中的缓存全部失效,恰好在这一时刻涌来了大量的客户请求,导致所有模块缓存无法利用,进而引起大量请求涌向数据库查询的极端情况,导致数据库阻塞或者挂起。

解决方案:

(1)缓存永久存储【不推荐】

(2)针对于不同的业务数据,设置不同的超时时间

3.4、项目中有没有遇到?如何解决

        没有用到。项目中我们使用的是MyBatis框架作为持久层,MyBatis已经解决了缓存穿透的问题。

http://www.lryc.cn/news/198099.html

相关文章:

  • Spark大数据分析与实战笔记(第一章 Scala语言基础-4)
  • 腾讯云服务器端口localhost可以访问,外部无法访问解决
  • 【软考-中级】系统集成项目管理工程师 【16 变更管理】
  • 【Eclipse】查看版本号
  • 论文精讲目录
  • 双飞翼布局和圣杯布局
  • Hive insert插入数据与with子查询
  • 如何在Django中集成JWT
  • hive进行base64 加密解密函数
  • Docker安装GitLab及使用图文教程
  • asp.net酒店管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
  • Yolov安全帽佩戴检测 危险区域进入检测 - 深度学习 opencv 计算机竞赛
  • vue中动态设置source标签
  • 【16】基础知识:React路由 - React Router 6
  • Unity3D 基础——Coroutine 协同程序
  • IDEA报错:前言中不允许有内容
  • 在线课堂分销商城小程序源码系统 带完整搭建教程
  • 【存储系统】0. 序
  • 逐字稿 | 2 MoCo 论文逐段精读【论文精读】
  • 【数据结构】排序算法的稳定性分析
  • Redis AOF持久化和ReWrite
  • Flink学习之旅:(一)Flink部署安装
  • Go语言入门心法(六): HTTP面向客户端|服务端编程
  • 为什么非const静态成员变量一定要在类外定义
  • 千兆光模块和万兆光模块的区别?
  • 中断:Zynq Uart中断的流程和例程~UG585的CH.19
  • 计算机补码能够减法转加法的原因
  • 软件工程与计算总结(十九)软件测试
  • Tomcat设置IP黑名单和白名单server.xml
  • 【AI视野·今日NLP 自然语言处理论文速览 第五十五期】Mon, 16 Oct 2023