- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 Redis缓存淘汰算法
Redis缓存淘汰策略当实际内存超出 maxmemory 时,Redis 提供了几种可选策略 (maxmemory-policy) 来让用户自己决定淘汰哪些key。总结如下:Redis LRU近似算法Redis 使用的是一种近似 LRU 算法:1、key增加最近访问时间戳字段2、选取一定数量的key(默认5,server.maxmemory_samples进行配置),比较最...
2018-09-25 16:55:49 2212 1
翻译 Mybatis缓存机制
一级缓存实现原理1、创建了一个SqlSession对象,同时会为这个SqlSession对象创建一个新的Executor执行器2、Executor接口的实现类BaseExecutor则使用PerpetualCache缓存对象维护缓存.3、PerpetualCache缓存类实现HashMap()<Obj,Obj>; public class PerpetualCac...
2018-09-25 15:46:41 478
翻译 LFU & LRU-K 等常用缓存淘汰算法对比
上篇文章介绍了最常用的LRU算法及实现,本篇总结常用缓存淘汰算法,归总对比。一、LFU(Least Frequently Used):最近最低使用频次被淘汰实现:通过count记录缓存数据的使用次数,数据块按照引用计数排序,计数相同则按照时间排序。1. 新加入数据插入到队列尾部(因为引用计数为1);2. 队列中的数据被访问后,引用计数增加,队列重新排序;3. 当需要淘汰数据...
2018-09-20 17:37:29 1505
翻译 缓存淘汰算法LRU及JAVA实现
一、基本概念命中:访问缓存是通过key get到对应value回源: miss了,未命中导致回读源数据淘汰:缓存满了,那么就会按照某一种策略,把缓存中的旧对象踢出,而把新的对象加入缓存池。(只有5个存储单元,来了第6个元素。则考虑谁出队)淘汰策略:即缓存算法,决定到底应该踢出哪些对象缓存污染:不常用的数据加入进缓存,降低了缓存效率的现象二、缓存淘汰算法LRULRU(Le...
2018-09-20 16:39:48 1116
原创 Spring AOP 通用入参校验终极版
入参校验一直是程序中一块鸡肋,食之无味却又不得不吃。经过几个版本变更,本次项目上线笔者终于将入参校验应用了稍微高级一点的写法。基调:hibernate.validator实现-低配版1、引入pom<dependency> <groupId>org.hibernate</groupId> <artifactId>h...
2018-09-17 19:31:51 2928
原创 Spring AOP 日志切面升级版
上一篇Spring AOP项目应用——方法入参校验 & 日志横切 介绍了 spring AOP 5切面类型及应用场景。本次结合注解使用,方便又实惠。实现如下:封装日志切面@Aspect@Componentpublic class LogAspect { private static ILog logger = LogFactory.getLogger(LogAspec...
2018-09-05 15:31:19 947
原创 Guava —— RateLimiter 接口限流
限流==保险丝策略,可借助框架如spring cloud中Hystrix组件实现。今天介绍使用guava RateLimiter 类实现接口限流。常见限流算法漏桶算法 漏桶(Leaky Bucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率),当水流入速度过大会直接溢出(访问频率超过接口响应速率),然后就拒绝请求,可以看出漏桶算法能强行限制...
2018-09-04 09:57:44 1273
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人