1. 程式人生 > >【DIY】實現一個快取管理器

【DIY】實現一個快取管理器

Cache

這裡提供了兩種 Cache 工具,介面 Cache

  • MemoryCache
  • RedisTemplateService

RedisCacheManager

仿 Spring Cache

  • @Cacheable 快取註解
  • @CacheEvict 快取清除註解
  • ~~ @CacheUpdate ~~ 這裡暫不提供更新的功能

使用 String.format + args

group

  • Cacheable 用於儲存一類業務的快取
  • CacheEvict 用於清理一類業務的快取

    原理:在redis中建立一個以 group 命名的 list

    建立快取時,在 list 中 push 快取的key
    刪除時,從 list 中獲取所有的 key,然後全部刪除

Demo

解決this不走快取

test中演示了一種方式:

private UserService getThis() {
    return AopContext.currentProxy() != null ? (UserService) AopContext.currentProxy() : this;
}