美文网首页
一起写个Cache架构【零】——分析与计划

一起写个Cache架构【零】——分析与计划

作者: WhatAKitty | 来源:发表于2018-07-16 00:12 被阅读0次

背景

在构建OTA平台系统的时候,经常需要判断一些数据是否存在,并且取得旧数据相关的一些值。本来是使用了Guava Cache了已经,不过考虑到刚好想要提升下自己的水平,单单使用别人的缓存工具还不如自己直接手动撸一个,这才有了这个项目。至于缓存的名字,笔者想想还是以后再说吧,名字啥的其实也不太重要~

竞品分析

只是个调侃啦,主要目的是看下其他缓存的具体功能以及相应的优缺点,在设计笔者自己的缓存的时候,就可以相应的看看能否取长补短(虽然不太现实)。

先来看看我们分析哪几款缓存:Guava Cache、Jodd Cache、Ehcache、Memcached、Redis。

Guava Cache

  • 轻量,适用于非复杂的缓存场景
  • 支持LRU、FIFO、LFU元素移除策略
  • 支持对key和value的软引用、弱引用
  • 支持缓存使用过程中的数据统计(包括:命中率、异常率和未命中率等等)
  • 不支持缓存数据支持化
  • 不支持分布式

Jodd Cache

  • 非常轻量、代码简单,适用于简单的缓存场景(比Guava Cache还要轻量)
  • 支持LRU、FIFO、LFU元素移除策略
  • 不支持缓存数据持久化
  • 不支持分布式

EhCache

  • 支持完整的缓存策略
  • 支持缓存持久化
  • 支持分布式缓存
  • 支持分布式需要额外的代码配置,配置相对麻烦

Memcached

  • 支持完整的缓存策略
  • 支持分布式缓存
  • 不支持缓存持久化
  • 分布式需要额外的服务器支持(通过客户端实现分布式缓存,原理为一致性hash算法)

Redis

  • 支持完整的缓存策略
  • 核心不支持分布式缓存
  • 支持缓存持久化
  • 分布式实现需要第三方的支持(官方分布式配置非常复杂,且需要更换客户端);且需要额外的服务器支持

总结以及功能点

结合了解了这么多的功能需求,笔者目前实现的目标是:支持内存缓存、缓存持久化、不同缓存策略、定时缓存清理、懒过期机制、分布式缓存。

计划(会根据项目的实际进展来实时更新)

第一个版本,性能可以一般,但是缓存该有的功能不能缺少。比如:存入缓存,缓存失效,缓存过期自动清理等等。

以下是第一个版本的功能点:

  • [x] 内存缓存
  • [x] 定时过期策略
  • [x] 分级缓存(系统内存 -> 原数据源)
  • [ ] 使用文档

** 一起写个Cache架构 **
分析与计划
基础缓存

相关文章

  • 一起写个Cache架构【零】——分析与计划

    背景 在构建OTA平台系统的时候,经常需要判断一些数据是否存在,并且取得旧数据相关的一些值。本来是使用了Guava...

  • 一起写个Cache架构【一】——基础缓存

    ### 实现目标 基础缓存就是实现一个缓存该有的功能,在这个版本中先不会考虑性能问题(性能将在之后的版本进行优化)...

  • NSURLSession系列(五)- cookie

    1 cookie cookie与cache类似,我们大致按照分析cache的思路分析一下cookie,分为以下几步...

  • Golang 开源项目cache2go 解读

    参考启航 - cache2go源码分析cache2go - cachetable源码分析cache2go源码最后一...

  • Redis-Spring Cache

    零、本文纲要 一、Spring Cache介绍 Spring Cache Spring Cache常用注解 二、 ...

  • 测试流程

    熟悉项目的步骤 业务特性 项目角色与用户 项目组织架构图 技术栈 测试流程 需求分析与评审 编写测试计划与测试方案...

  • cache_t结构探一探

    接上文类的结构分析 一.cache_t结构 1.cache_t结构 cache是cache_t类型,那么cache...

  • iOS - cache_t分析

    1. cache中存储的是什么? 查看cache_t的源码,发现分成了3个架构的处理,其中真机的架构中,mask和...

  • Guava 源码分析(Cache 原理【二阶段】)

    前言 在上文「Guava 源码分析(Cache 原理)」中分析了 Guava Cache 的相关原理。 文末提到了...

  • catch_t分析

    cache_t中存储的是什么? 查看cache_t的源码,发现分成了3个架构的处理,其中真机的架构中,mask和b...

网友评论

      本文标题:一起写个Cache架构【零】——分析与计划

      本文链接:https://www.haomeiwen.com/subject/pyvmpftx.html