自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小大虽差,各任其性,苟当其分,逍遥一也。

  • 博客(9)
  • 收藏
  • 关注

原创 从零开始手写 redis(四)监听器的实现

前言java从零手写实现redis(一)如何实现固定大小的缓存?java从零手写实现redis(三)redis expire 过期原理java从零手写实现redis(三)内存数据如何重启不丢失?本节,让我们来一起学习一下如何实现类似 guava-cache 中的 removeListener 删除监听器,和类似 redis 中的慢日志监控的 slowListener。删除监听器说明我们在两种场景下删除数据是对用户透明的:(1)size 满了之后,进行数据淘汰。(2)expire 过期时,清

2020-09-30 19:56:08 995

原创 从零手写 cache 之 redis expire 过期实现原理

前言我们在 从零手写 cache 框架(一)实现固定大小的缓存 中已经初步实现了我们的 cache。本节,让我们来一起学习一下如何实现类似 redis 中的 expire 过期功能。过期是一个非常有用的特性,比如我希望登录信息放到 redis 中,30min 之后失效;或者单日的累计信息放在 redis 中,在每天的凌晨自动清空。代码实现接口我们首先来定义一下接口。主要有两个:一个是多久之后过期,一个是在什么时候过期。public interface ICache<K, V>

2020-09-28 20:11:15 1690

原创 从零开始手写缓存之如何实现固定缓存大小

程序员的三高前段时间有一位同事体检,体检医生说他三高。我打趣道,程序员三高不是高性能、高并发、高可用吗?你是哪三高?每一个追求性能的开发者,都对高性能孜孜不倦地追求着,而缓存是我们踏上这条高性能大道的必经之路。小到 cpu 设计,大到服务分布式缓存,我们每时每刻都在接触缓存,今天我们就一起学习下缓存的发展之路,以及如何如何手写一个可以指定大小的 cache。cache 发展之路古代社会 - HashMap当我们应用有一定流量之后或者查询数据库特别频繁,这个时候就可以祭出我们的java中自带的H

2020-09-27 23:17:25 562 5

原创 18次版本迭代,从零到一实现 java web 权限管理控台(文末福利)

​privilege-adminprivilege-admin 是一款为 java 设计的权限管理控台。特性用户,角色,权限的管理黑白名单管理登入/登出日志审计基于 auto-log 的统一日志输出创作目的权限作为 web 开发可以说是最基础,但同时也是最重要的一个环节。前端时间写了 https://github.com/houbb/privilege 权限管理框架,但是没有控台配置,总觉的是残缺的,于是花时间从零实现了一个权限管理控台。多年不接触前端,前端技术变化也

2020-09-26 22:38:29 445

原创 java 注解结合 spring aop 自动输出日志新增拦截器与过滤器

auto-logauto-log 是一款为 java 设计的自动日志监控框架。前面已经写过了两篇:java 注解结合 spring aop 实现自动输出日志java 注解结合 spring aop 实现日志 traceId 唯一标识经过前面2篇的代码实现,发现依然存在下列问题:(1)注解的使用依然不够便捷。如果每一个方法上都指定 @AutoLog,依然会比较麻烦。个人在使用的时候也不想这么麻烦。于是想添加基于类的注解。后期考虑是否可以基于包,动态指定 AOP 的扫描包范围。(2)对于日志

2020-09-26 12:24:03 774

原创 如何从零开始设计权限管理系统

背景说明近期写代码又开始重新接触了一点控台应用,接触到的项目年代久远,所有的权限管理用起来感觉不是很得心应手。于是想着自己能否从零设计一个,梳理一下思路,当然实际用不用也无所谓。权限管理主要是为了安全,项目中的权限管理是全部放在前端控制的,感觉这一点非常不安全。前端防君子,不防小人。当然本次造轮子主要也是为了打造一款自己满意的权限控制框架,所以设计采用 MVP 模式,采用渐进式的方式开发。可以一起学习一下权限控制的设计和实现思路。如果生产想直接使用,也推荐目前比较成熟的框架:spring-

2020-09-17 23:24:15 1064

原创 面试官:谈一谈你对 redis 分布式锁的理解

​为什么需要分布式锁在 jdk 中为我们提供了多种加锁的方式:(1)synchronized 关键字(2)volatile + CAS 实现的乐观锁(3)ReadWriteLock 读写锁(4)ReenTrantLock 可重入锁等等,这些锁为我们变成提供极大的便利性,保证在多线程的情况下,保证线程安全。但是在分布式系统中,上面的锁就统统没用了。我们想要解决分布式系统中的并发问题,就需要引入分布式锁的概念。锁的准则首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:.

2020-09-10 22:38:45 1159

原创 java 注解结合 spring aop 实现日志traceId唯一标识

MDC 的必要性日志框架日志框架成熟的也比较多:slf4jlog4jlogbacklog4j2我们没有必要重复造轮子,一般是建议和 slf4j 进行整合,便于后期替换为其他框架。日志的使用基本上所有的应用都需要打印日志,但并不是每一个开发都会输出日志。主要有下面的问题:(1)日志太少,出问题时无法定位问题(2)日志太多,查找问题很麻烦,对服务器磁盘也是很大的压力(3)日志级别控制不合理(4)没有一个唯一标识贯穿整个调用链路我们本次主要谈一谈第四个问题。为什么需要唯一标识对于

2020-09-06 22:48:15 3451 2

原创 java 注解结合 spring aop 实现自动输出日志

auto-logauto-log 是一款为 java 设计的自动日志监控框架。创作目的经常会写一些工具,有时候手动加一些日志很麻烦,引入 spring 又过于大材小用。所以希望从从简到繁实现一个工具,便于平时使用。特性基于注解+字节码,配置灵活自动适配常见的日志框架支持编程式的调用支持注解式,完美整合 spring支持整合 spring-boot支持慢日志阈值指定,耗时,入参,出参,异常信息等常见属性指定变更日志核心原理注解定义import ja

2020-09-02 22:20:11 492

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除