java缓存技术专栏
梦断若水
努力不一定成功,放弃一定失败
展开
-
java技术--高并发Redis缓存和MySQL数据一致性方案
1.缓存(Redis)和数据库(MySQL)间的数据一致性问题(1)读取缓存一般没有什么问题,但是一旦涉及到数据更新(2)数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题(3)不管是先写MySQL数据库,再删除Redis缓存;还是先删除缓存,再写库,都有可能出现数据不一致的情况(4)示例如下: <1>如果删除了缓存Redis,还没有来得及写库MySQL,另一个线程就来读取,发现缓存为空,则去数据库中读取数据写入缓存,此时缓存中为脏数据 &原创 2020-06-05 17:29:20 · 1119 阅读 · 0 评论 -
java技术--Redis缓存穿透、雪崩、击穿解决方案代码实现
1.防止缓存穿透源码实现(1)使用的是Google的Bloom Filter <1>引入依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency&...原创 2020-04-09 16:21:55 · 601 阅读 · 0 评论 -
java技术--Redis缓存穿透、雪崩、击穿问题及解决方案
1.缓存穿透、雪崩、击穿产生的原因(1)缓存穿透 <1>查询一个不存在的数据 <2>从缓存redis没有命中,需要从mysql数据库查询,查不到数据则不写入缓存 <3>这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透(2)缓存雪崩 <1>设置缓存时采用了相同的过期时间,导致缓存在某一...原创 2020-04-09 14:17:31 · 843 阅读 · 0 评论 -
java技术---Redis API 深入分析(四)
1.spring封装了redis,导入对应的客户端jar包,使用很方便2.spring 封装成为了 RedisTemplate 对象来进行各种操作,支持所有的 redis 原生的 api3.在https://blog.csdn.net/qq591009234/article/details/103709087已经对封装进行配置4.下面针对Spring 集成 Redis,再次进行详细配置说明,...原创 2020-01-01 23:46:44 · 82 阅读 · 0 评论 -
java技术--Redis API 深入分析(三)
1.Redis客户端目前主要有两种(1)使用Jedis作为Client操作Redis <1>Jedis有多线程安全问题,并且它的性能也堪忧,大有被淘汰的趋势 <2>但是毕竟它还仍旧还是当下的主流的Java访问Redis的客户端 <3>Jedis的使用在深入分析(二)中讲过,但是使用Jrdis集成Spring也要导包 &l...原创 2020-01-01 22:46:29 · 79 阅读 · 0 评论 -
java技术--Redis API 深入分析(二)
1.存储数据(内部编码)(1)Redis内部使用一个redisObject对象来表示所有的key和value <1>redisObject主要的信息包括数据类型(type) ,编码方式(encoding) ,数据指针(ptr),虚拟内存(vm) <2>type代表一个value对象具体是何种数据类型(5种之一),encoding是不同数据类型在redi...原创 2019-12-31 18:27:56 · 89 阅读 · 0 评论 -
java技术--Redis API深入分析(一)
1.Redis是一种基于键值对的NoSQL数据库2.Redis天生的单线程模型3.开发者无论在用什么样的编程语言,开发什么样的项目都会有使用到将数据缓存在内存中的场景4.Redis缓存基本数据结构及其应用场景:(1)经常遇到需要将配置信息、热点高频数据、统计数据、高性能需求数据缓存到String、List、Map等数据结构的需求(2)在缓存数据时需要根据需求选择合适的数据结构,Redis...原创 2019-12-31 16:57:27 · 115 阅读 · 1 评论 -
java技术--Redis简单应用
1.安装好Redis服务端,客户端之后,启动服务端,就可以使用java进行简单操作2.下载Java redis驱动包(jedis.jar),确保下载最新驱动包,导入项目(Maven引入)2.应用实例如下:(1) Java连接到Redis服务器:public class RedisTest { public static void main(String[] args) { //...原创 2019-12-27 10:27:15 · 94 阅读 · 0 评论 -
java技术--Redis下载安装
1.下载Redis(1)https://pan.baidu.com/s/1tdMzOlcTlFC7Z3a3I_59hQ 提取码:5tgy2.安装Redis(1)将下载的Redis解压至指定目录下3.启动Redis(服务端)(1)进入 redis 所在的目录:在Redis目录下打开窗口(shift+右键)(2)启动 redis:redis-server.exe redis.windo...原创 2019-11-12 14:31:46 · 158 阅读 · 0 评论 -
java技术--缓存技术选型
1.Java开源缓存框架(1)比较有名的本地缓存开源框架有: <1>OSCache:缓存任何对象,可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存 <2>JCache:Java缓存新标准(javax.cache) <3>cache4j:有简单API与实现快速的Java对象缓存,它的特性包括: ...原创 2019-10-17 18:11:08 · 814 阅读 · 0 评论 -
java技术--本地缓存进化史
1.原始状态:查库 (1)原始开发中,没有使用缓存机制(Ehcache,Redis)时,直接查库 (2)在用户量量不大的时候,查数据库或者读取文件是最为方便,能完全满足我们的业务要求2.基于直接查库的优化JVM内置缓存:HashMap(1)有一定用户量之后或者查询数据库特别频繁(2)就可以使用的java中自带的HashMap或者ConcurrentHashMap 代码演示如下:p...原创 2019-10-17 16:33:44 · 219 阅读 · 0 评论 -
java技术---缓存机制简介
1.缓存是计算机上的原始数据的复制集,缓存的使用与应用场景密切相关,在不同的场景上会有不同的意义2.缓存的目的是想通过提高服务的性能从而提高应用的用户体验3.系统性能的指标一般包括:响应时间、延迟时间、吞吐量、并发用户数量和资源利用率等几个方面(1)吞吐量:系统在单位时间内处理的请求的数量4.缓存的原理与基本概念:(1) 外存:外储存器是指除计算机内存及CPU缓存以外的储存器 ...原创 2019-10-12 15:53:49 · 570 阅读 · 0 评论 -
java技术--缓存机制之EHCache(基于hibernate的默认缓存实现方式)
hibernate缓存:一级缓存,二级缓存(https://mp.csdn.net/mdeditor)1.一级缓存:即session级别的缓存,亦即事务级别的缓存策略,这种缓存策略是Hibernate内置的,不可被拆卸的2.二级缓存:即SessionFactory的外置缓存,其同时也称为进程级缓存或集群范围内的缓存。hibernate的二级缓存是需要第三方支持的,hibernate默认的二级...原创 2019-04-10 11:23:41 · 350 阅读 · 0 评论