缓存淘汰算法
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
Java 高并发缓存与Guava Cache
一.背景缓存是我们在开发中为了提高系统的性能,把经常的访问业务的数据第一次把处理结果先放到缓存中,第二次就不用在对相同的业务数据在重新处理一遍,这样就提高了系统的性能。缓存分好几种:(1)本地缓存。(2)数据库缓存。(3)分布式缓存。分布式缓存比较常用的有memcached等,memcached是高性能的分布式内存缓存服务器,缓存业务处理结果,减少数据库...转载 2019-11-07 18:10:47 · 991 阅读 · 0 评论 -
缓存击穿后单机只用一个线程命中Db策略
private ConcurrentHashMap<Integer, FutureTask<ShopDto> shopTaskMap = new ConcurrentHashMap<Integer, FutureTask<ShopDto>();public ShopDto loadShop(int shopId) { ShopDto dto = ...原创 2019-11-07 17:52:26 · 580 阅读 · 0 评论 -
缓存淘汰算法--LRU算法
1. LRU1.1. 原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 1.2. 实现 最常见的实现是使用一个链表保存缓存数据,详细算法实现如下: 新数据插入到链表头部; 每当缓存命中(即缓存数据被访问),则将数据移到链表头部; ...转载 2017-12-06 11:21:37 · 1695 阅读 · 1 评论 -
LRU、FIFO缓存实现以及LinkedHashMap源码
本篇将描述如何使用LinkedHashMap实现LRU以及FIFO缓存,并将从LinkedHashMap源码层面描述是如何实现这两种缓存的。1.缓存描述 首先介绍一下FIFO、LRU两种缓存: FIFO(First In First out):先见先出,淘汰最先近来的页面,新进来的页面最迟被淘汰,完全符合队列。 LRU(Least recently used):最...转载 2019-11-07 13:48:00 · 647 阅读 · 0 评论 -
LRU、LFU算法java实现
https://blog.csdn.net/foye12/article/details/78647647近期使用springboot集成ehcache实现缓存,spring还支持使用简单ConcurrentMapCache实现,底层就是用ConcurrentHashMap实现。ehcache相对来说比较重,加pom依赖下载了很长时间,但是ehcache有很多可配置的选项,其中包括缓存达到一定...转载 2019-05-31 10:54:03 · 2518 阅读 · 1 评论