个人简介

Echo Blog


江湖无名 安心练剑
  • Cache Travel-09-java 从零开始手写 redis(五)过期策略的另一种实现思路
    前言 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(三)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? java从零手写实现redis(四)添加监听器 前面实现了 redis 的几个基本特性,其中在 expire 过期原理时,提到了另外一种实现方式。 这里将其记录下来,可以拓展一下自...
    2018-09-01 04:24:42 | Cache
  • Cache Travel-09-从零开始手写 redis(四)监听器的实现
    前言 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(三)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? 本节,让我们来一起学习一下如何实现类似 guava-cache 中的 removeListener 删除监听器,和类似 redis 中的慢日志监控的 slowListener。 删除...
    2018-09-01 04:24:42 | Cache
  • Cache Travel-09-从零开始手写 redis(三)内存数据重启后如何不丢失?
    前言 我们在 从零手写 cache 框架(一)实现固定大小的缓存 中已经初步实现了我们的 cache。 我们在 从零手写 cache 框架(一)实现过期特性 中实现了 key 的过期特性。 本节,让我们来一起学习一下如何实现类似 redis 中的 rdb 的持久化模式。 持久化的目的 我们存储的信息都是直接放在内存中的,如果断电或者应用重启,那么内容就全部丢失了。 有时候我们希望...
    2018-09-01 04:24:42 | Cache
  • Cache Travel-09-从零开始手写缓存框架(12)redis expire 过期的随机特性详解及实现
    前言 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(二)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? java从零手写实现redis(四)添加监听器 java从零手写实现redis(五)过期策略的另一种实现思路 java从零手写实现redis(六)AOF 持久化原理详解及实现 j...
    2018-09-01 04:24:42 | Cache
  • Cache Travel-09-从零开始手写缓存框架(二)redis expire 过期原理及实现
    前言 我们在 从零手写 cache 框架(一)实现固定大小的缓存 中已经初步实现了我们的 cache。 本节,让我们来一起学习一下如何实现类似 redis 中的 expire 过期功能。 过期是一个非常有用的特性,比如我希望登录信息放到 redis 中,30min 之后失效;或者单日的累计信息放在 redis 中,在每天的凌晨自动清空。 代码实现 接口 我们首先来定义一下接口。 ...
    2018-09-01 04:24:42 | Cache
  • Cache Travel-09-从零手写 redis(一)FIFO 淘汰策略原理详解及实现
    程序员的三高 前段时间有一位同事体检,体检医生说他三高。 我打趣道,程序员三高不是高性能、高并发、高可用吗?你是哪三高? 每一个追求性能的开发者,都对高性能孜孜不倦地追求着,而缓存是我们踏上这条高性能大道的必经之路。 小到 cpu 设计,大到服务分布式缓存,我们每时每刻都在接触缓存,今天我们就一起学习下缓存的发展之路,以及如何如何手写一个可以指定大小的 cache。 cache 发...
    2018-09-01 04:24:42 | Cache
  • Cache Travel-09-从零手写 redis(零)为什么手写 redis
    redis 的重要性 做 java 的,天天喊着高性能,高并发,高可用。 高性能之中,基本上都离不开 redis。 特别是在当今对于性能要求越来越高的时代,mysql 等传统数据库越来越需要与 redis 结合,这样才能更好的适应我们的业务。 以前手写过一次 hades,觉得不满意,就废弃了。 本次重新再写一次。 开源地址: https://github.com/houb...
    2018-09-01 04:24:42 | Cache
  • Cache Travel-08-更好的使用缓存
    基本概念 在合理应用缓存前,需要了解缓存领域里相关的几个常用术语: 1)缓存命中:表示数据能够从缓存中获取,不需要回源; 2)Cache miss:表示没有命中缓存,如果缓存内存中还有内存空间的话,会将数据加入到缓存中; 3)存储成本:当没有命中缓存时,回源获取后会将数据放置到存储中,整个将数据放置到存储空间所需要的时间以及空间称之为存储成本; 4)缓存失效:当源数据发生变更后,意...
    2018-09-01 04:24:42 | Cache