个人简介

Echo Blog


江湖无名 安心练剑
  • Guava Cache-01-入门学习
    适用性 缓存在很多场景下都是相当有用的。例如,计算或检索一个值的代价很高,并且对同样的输入需要不止一次获取值的时候,就应当考虑使用缓存。 Guava Cache与ConcurrentMap很相似,但也不完全一样。 最基本的区别是ConcurrentMap会一直保存所有添加的元素,直到显式地移除。相对地,Guava Cache为了限制内存占用,通常都设定为自动回收元素。在某些场景下,尽管...
    2018-09-09 23:44:19 | Cache
  • Caffeine 入门学习
    Caffeine Caffeine is a high performance, near optimal caching library based on Java 8. 特性 Caffeine 提供灵活的结构,以创建一个缓存与下列功能的组合: 自动将条目加载到缓存中,可选异步加载 当基于频率和最近度超过最大值时,基于尺寸的驱逐 ...
    2018-09-09 23:44:19 | Cache
  • Caffeine-05-Caffeine cache 核心方法
    chat Caffeine Cache 作为高性能 Java 本地缓存库,提供了四类核心缓存实例,每种类型对应不同的加载策略和方法。 以下是其核心方法分类说明: ⚙️ 1. 手动加载缓存(Cache) 通过 Caffeine.newBuilder().build() 创建,需显式管理缓存条目。 getIfPresent(K key):若缓存存在 key,返回值;否则返回 nu...
    2018-09-09 23:44:19 | Cache
  • Caffeine-04-TinyLFU A Highly Efficient Cache Admission Policy
    这篇技术文档的中文翻译如下: 摘要 本文提出了一种基于频率的缓存准入策略,以提高受访问分布偏差影响的缓存的有效性。给定一个新访问的项目和缓存中的一个驱逐候选项,我们的方案基于最近的访问历史来决定,是否值得以驱逐候选项为代价将新项目纳入缓存。 实现这一概念是通过一种新颖的近似LFU(最近最少使用)结构,称为TinyLFU,它维护了一个最近访问的大样本项目的访问频率的近似表示。TinyLFU非...
    2018-09-09 23:44:19 | Cache
  • Caffeine-03-过期策略 淘汰算法 FIFO/LRU/LFU/TinyLFU 算法
    1、FIFO(先进先出)算法 FIFO是类似队列的算法,如果空间满了需要加入新数据先进入缓存的数据会被优先被淘汰。 淘汰过程: 优点:最简单,最公平的一种数据淘汰算法,逻辑简单,易于实现。 缺点:缓存命中率低。 2、LRU(最近最久未使用)算法 如果空间用尽需要加入新数据会优先淘汰最久未被访问(访问少的在未来被访问的概率也是最低的)的数据。 LRU是以时间先后顺序来衡量要淘...
    2018-09-09 23:44:19 | Cache
  • Caffeine-02-详细介绍+整合 springboot
    介绍 Caffeine 是一个基于Java 8的高性能本地缓存框架,采用了W-TinyLFU(LUR和LFU的优点结合)算法,实现了缓存高命中率、内存低消耗。 缓存性能接近理论最优,属于是Guava Cache的增强版。 在并发读、并发写、并发读写三个场景下Caffeine的性能最优。 特性 Caffeine 提供灵活的结构来创建缓存,并且有以下特性: 自动加...
    2018-09-09 23:44:19 | Cache
  • Lua-01-overview Lua 入门教程
    Lua Lua 是一种强大、高效、轻量级、可嵌入的脚本语言。 它支持过程编程、面向对象编程、函数编程、数据驱动编程和数据描述。 Lua 结合了简单的过程语法和基于关联数组和可扩展语义的强大数据描述结构。 Lua是动态类型化的,通过使用基于寄存器的虚拟机解释字节码来运行,并且具有带有增量垃圾收集的自动内存管理功能,使其成为配置、脚本编制和快速原型的理想工具。 快速开始 环境 ...
    2018-09-09 02:38:06 | Lang
  • redis-45-redis multi io 多路复用
    Blocking I/O 先来看一下传统的阻塞 I/O 模型到底是如何工作的: 当使用 read 或者 write 对某一个文件描述符(File Descriptor 以下简称 FD)进行读写时,如果当前 FD 不可读或不可写,整个 Redis 服务就不会对其它的操作作出响应,导致整个服务不可用。 这也就是传统意义上的,也就是我们在编程中使用最多的阻塞模型: 阻塞模型虽然开发中非...
    2018-09-08 03:07:16 | Distributed