02 2023 档案
摘要:
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 既然程序运行会产生大量的废弃物,也就是「垃圾」,那总不能一直堆着不管吧。现在就来粗浅地谈谈Java里面什么时候会触发GC以及有哪些GC。 通过之前的电商支付系统,可以知道系统运行创建的对象都是优先分配在JVM的年轻代中的,年轻代里面的对象越来越
阅读全文

摘要:
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 前面说过,JVM会将堆内存划分为年轻代、老年代两个区域。年轻代会将创建和使用完之后马上就要回收的对象放在里面,而老年代则将创建之后需要长期存在的对象放在里面。那么现在再来看一个比较具体的例子。 在电商系统中,支付系统大概处于这样的位置: 核心业
阅读全文

摘要:
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 大部分在代码里创建的对象,存活周期都是极短的,只有少数对象是长期存活的,如静态类和静态变量。采用不同方式创建和使用对象,其生存周期也不同。因此,JVM将堆内存划分为年轻代、老年代两个区域。 1、年轻代:将创建和使用完之后马上就要回收的对象放在里
阅读全文

摘要:
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 上次把JVM的类加载过程粗略地过了一遍,今天再来看看JVM运行代码时,系统里发生了什么。 就像家里的柴、米、油、盐、酱、醋、茶要分别放在不同的缸子里一样,JVM也会把运行时需要的数据放在不同的「存储空间」里。JVM的存储空间大概都有这么些「家当
阅读全文

摘要:
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 这是多年之前做过的学习笔记,今天再翻出来,觉得仍然是记忆犹新。「独乐乐不如众乐乐」,就拿出来分享给「众乐乐」吧。 目前大多数Java工程师都面临一个共同的问题:对JVM的了解非常贫乏,尤其是对实际生产环境中的优化几乎就是完全没有任何经验。加上J
阅读全文

摘要:
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 之前用Caffeine替代Redis的时候,发现先保存KV,再获取key,过期时间为3秒。但即使过了3秒,还是能获取到保存的数据。这是为什么呢?因为之前在整合SpringBoot时,使用的是注解方式,在配置文件中已经定死了Caffeine的过期
阅读全文

摘要:
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 普通的缓存和Token的区别在于时效性和持久性。如果用Redis实现Token的话,可以: 1、设置redis kv键值对的过期时间(秒数/毫秒数); 2、redis内部实现计时,无需代码干预,且有持久化; 3、kv超过指定过期时间即被自动删除
阅读全文

摘要:
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 说了很多Caffeine的基本特性,但是骡子是马,终归还是要看能不能拉磨。SpringBoot有两种使用Caffeine的方式: 1、直接引入Caffeine依赖,然后使用Caffeine方法实现缓存; 2、引入Caffeine和Spring
阅读全文

摘要:
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 缓存的存储空间是远远小于磁盘的。所以对于有些过期的数据,就需要定期进行清理,腾出存储空间。Caffeine又是怎么做的呢? Caffeine和进程外缓存Redis一样,也有主动失效和被动失效。主动失效就是数据过期后由淘汰算法自动清除,被动失效就
阅读全文

摘要:
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 缓存除了过期策略,其实还有刷新和填充策略。刷新策略就是当数值变化时怎么处理,而所谓填充策略,就是将数据保存到缓存的方式。 Caffeine提供了三种刷新方法: 1、基于类Caffeine的refreshAfterWrite(time, dura
阅读全文

摘要:
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ SpringBoot在2.0之前,可以使用Google Guava和Ehcache实现进程内缓存功能。Google Guava是基于LRU机制实现的进程内缓存,而EhCache是纯Java实现的进程内缓存(Hibernate默认的缓存实现就是它
阅读全文

摘要:
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 除了操作集合、限流和缓存,Guava还有另一个隐秘的功能:事件总线EventBus机制——是发布-订阅模式的实现,不需要显式地注册回调——比观察者模式更灵活。 EventBus是在单体架构内实现松耦合的一种很好的手段,通过它可以实现与业务逻辑无
阅读全文

摘要:
您好,我是湘王,这是我的博客园。值此新春佳节,我给您拜年啦~祝您在新的一年中所求皆所愿,所行皆坦途,展宏“兔”,有钱“兔”,多喜乐,常安宁! 在开发中,经常会遇到这样的场景:有些数据不经常改动,数据量也不大,但访问却非常的频繁,由于硬盘I/O或网络等原因,导致获取这些数据可能非常的费时。而有时候,需
阅读全文

摘要:
您好,我是湘王,这是我的博客园。值此新春佳节,我给您拜年啦~祝您在新的一年中所求皆所愿,所行皆坦途,展宏“兔”,有钱“兔”,多喜乐,常安宁! 在Nginx中提到过通过限流算法实现对后端服务的保护,避免因服务器承载压力太大而被冲垮。大家都知道Guava是用来操作集合的,但其实Guava也可以实现限流的
阅读全文
