1.项目情况简述自己做过项目2. myBatis 多级缓存 --有两级缓存2.1 一级缓存描述:会话级缓存,该缓存生命周期仅存于该会话,不可直接关闭命中场景:1.满足特定命中参数a.SQL与参数相同 b.同一个会话 c.相同MapperStatement ID d.RowBounds行范围相同2.不触发清空方法a. 手动调用clearCache b. 执行提交回滚 c. 执行update d
转载 2023-12-07 08:42:57
53阅读
Java面试少不了一些技术类型试题面试过程很多小伙伴可能表达很好,结果Java基础不是很牢固,所以今天针对Java试题,小编汇总来一下Java面试题缓存三大问题及解决方案。1. Java面试题缓存三大问题及解决方案:缓存来由随着互联网系统发展逐步完善,提高系统qps,目前绝大部分系统都增加了缓存机制从而避免请求过多直接与数据库操作从而造成系统瓶颈,极大提升了用户体验和系统稳定
1. 列举⼀个常⽤Redis客户端并发模型2. 如何实现⼀个Hashtable?你设计如何考虑Hash冲突?如何优化?3. 分布式缓存,⼀致性hash⼀致性hash算法:我们memcached客户端(这⾥我看spymemcache源码),使⽤了⼀致性hash算法ketama进⾏数据存储节点选择。
原创 2021-07-06 16:05:59
225阅读
前言Java缓存实现方案有很多,最基本自己使用Map去构建缓存,再高级点使用Ehcache或者Goolgeguava作为内存缓存框架,Ehcache可以满足单机缓存需求(Ehcache具体使用在我过往文章中有所介绍),如果我们是多台机子共用缓存数据的话,Ehcache可通过rmi,jgroup,jms方式实现,但是实用性与操作性不高且复杂,现时大部分应用仅用Ehcache作为单机缓存
1. 列举⼀个常⽤Redis客户端并发模型2. 如何实现⼀个Hashtable?你设计如何考虑Hash冲突?如何优化?3. 分布式缓存,⼀致性hash⼀致性hash算法:我们memcached客户端(这⾥我看spymemcache源码),使⽤了⼀致性hash算法ketama进⾏数据存储节点选择。与常规hash算法思路不同,只是对我们要存储数据key进⾏hash计算,分配到不同节点存储。⼀致性hash算法是对我们要存储数据服务器进⾏hash计算,进⽽确认每个key存储位置。这⾥提
原创 2022-03-21 17:35:39
465阅读
说说浏览器缓存缓存可以减少网络 IO 消耗,提高访问速度。浏览器缓存是一种操作简单、效果显著前端性能优化手段 很多时候,大家倾向于将浏览器缓存简单地理解为“HTTP 缓存”。 但事实上,浏览器缓存机制有四个方面,它们按照获取资源时请求优先级依次排列如下: Memory Cache Service Worker Cache HTTP Cache Push Cache 缓存它又分为强缓存和协商
一、Java基础1、java中有哪些基本类型?2、java为什么能够跨平台运行?3、String是基本数据类型吗?我可不可以写个类继承于String?4、谈谈&和&&区别?5、Switch语句里面的条件可不可以是byte、long、String?使用时候还应注意什么?6、short s1=1;s1=s1+1;有什么错?7、char为什么能存贮一个汉字?9、final关键字
# Java 缓存设计科普 在现代应用程序缓存是提高性能和响应速度重要手段之一。特别是在大型分布式系统,良好缓存策略能够显著减少数据库负载,提高用户体验。本文将介绍Java缓存设计基本概念,常见缓存策略,以及一些简单代码示例,带你了解如何实现一个高效缓存系统。 ## 缓存基本概念 缓存是一种临时存储机制,用于存储频繁访问数据,以减少数据访问延迟和负载。在Java
原创 7月前
8阅读
001、什么是 Redis?Redis 是一个使用 C 语言开发内存数据库,读写速度非常快,它提供了多种数据类型来支持不同业务场景,可以用作缓存、分布式锁甚至是消息队列。002、缓存数据处理流程?如果用户请求数据在缓存存在的话就直接返回,如果不存在的话就看数据库是否存在,数据库中有的话就更新缓存并返回对应数据给用户,如果数据库不存在的话就返回空数据。003、为什么要使用 Redis
1. 你在实际项目中使用缓存有遇到什么问题或者会遇到什么问题你知道吗?  缓存和数据库数据一致性问题:分布式环境下非常容易出现缓存和数据库间数据一致性问题,针对这一点,如果项目对缓存要求是强一致性,那么就不要使用缓存。我们只能采取合适策略来降低缓存和数据库间数据不一致概率,而无法保证两者间强一致性。合适策略包括合适缓存更新策略,更新数据库后及时更新缓存缓存失败时增加重试机制。2.R
Java缓存技术可分为远端缓存和本地缓存,远端缓存常用方案有著名redis和memcache,而本地缓存代表技术主要有HashMap,Guava Cache,Caffeine和Encahche。本篇博文仅覆盖了本地缓存,且突出探讨高性能本地缓存。本篇博文将首先介绍常见本地缓存技术,对本地缓存有个大概了解;其次介绍本地缓存中号称性能最好Cache,可以探讨看看到底有多好?怎么做到这么好
一、缓存穿透(数据库没有,缓存没有)1、概念当查询Redis没有数据时,该查询会下沉到数据库层,同时数据库层也没有该数据,当出现大量这种查询(或被恶意攻击)时,接口访问全部透过Redis访问数据库,而数据库也没有这些数据,我们称这种现象为“缓存穿透”。缓存穿透会穿透Redis保护,让底层数据库负载压力变大,同时这类穿透查询没有数据返回也造成了网络和计算资源浪费。2、解决方案在业务服务访
转载 2023-07-12 19:38:49
17阅读
Java NIO 基本介绍Java NIO 全称 java non-blocking IO,是指 JDK 提供新 API。从 JDK1.4 开始,Java 提供了一系列改进输入/输出新特性,被统称为 NIO(即 New IO),是同步非阻塞NIO 相关类都被放在 java.nio 包及子包下,并且对原 java.io 包很多类进行改写。NIO 有三大核心部分:Channel(通道),B
21 Overload和Override区别。Overloaded方法是否可以改变返回值类型?   方法重写Overriding和重载Overloading是Java多态性不同表现。重写Overriding是父类与子类之间多态性一种表现,重载Overloading是一个类多态性一种表现。如果在子类定义某方法与其父类有相同名称和参数,我
1.如何保证缓存与数据库双写一致性?答:(1)读时候,先读缓存缓存没有的话,那么就读数据库,然后取出数据后放入缓存,同时返回响应(2)更新时候,先删除缓存,然后再更新数据库下面来解释一下为什么是删除缓存而不是更新缓存问题:...
原创 2021-07-17 17:32:23
98阅读
第11章 Redis(答案精简)11.1 缓存穿透 11.2 哨兵模式 11.3 数据类型 11.4 持久化 11.5 悲观锁 11.1 缓存穿透、缓存雪崩、缓存击穿1)缓存穿透是指查询一个一定不存在数据。由于缓存命不中时会去查询数据库,查不到数据则不写入缓存,这将导致这个不存在数据每次请求都要到数据库去查询,造成缓存穿透。解决方案:是将空对象
转载 2024-10-16 09:44:37
62阅读
一 使用
原创 2022-07-02 00:13:53
131阅读
文章目录redis作用为什么redis访问速度快redis常用场景Redis基本数据类型Redis持久化Redis持久化提供两种方式:redis通信协议(RESP)Redis有那些架构模式单机版:主从复制哨兵模式集群类型(高可用架构)redis分布式锁工作使用场景如何保证redis中都是热点数据?回收策略什么是缓存穿透?缓存击穿?缓存雪崩?如何避免?常见IO三种模型 redis作用缓存就是内存
转载 2023-11-24 22:05:46
44阅读
Java NIO提供了与标准IO不同IO工作方式:Channels and Buffers(通道和缓冲区):标准IO基于字节流和字符流进行操作,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区,或者从缓冲区写入到通道。Asynchronous IO(异步IO):Java NIO可以让你异步使用IO,例如:当线程从通道读取数据到缓冲区时,线
转载 2023-08-20 09:53:45
59阅读
1 说说IO模型。 参考回答 什么是IO 我们都知道unix世界里,一切皆文件。而文件是什么呢?文件就是一串二进制流而已。无论是socket,还是FIFO、管道、终端,对我们来说,一切都是文件,一切都是流。在信息交换过程,我们都是对这些流进行数据收发操作简称为I/O操作(input and output)。往流读出数据,系统调用read;写入数据,系统调用write。 计算机里有这么多
转载 2023-09-01 13:09:25
132阅读
  • 1
  • 2
  • 3
  • 4
  • 5