1.真的需要缓存吗?
    缓存就是一种快速响应的技术,本质上是存储数据的原始集,便于访问
    任何技术的引入都会带来新的复杂度的提升。
    结论

    • 愿意花费一些内存来提高速度。
    • 数据中某些会被频繁调取
    • 缓存中存放的数据总量不会超出内存容量?

    2.什么场景下要使用缓存:
    CPU占用高:解决CPU的频率与内存访问速度的不一致
    数据库占用或网络访问过高:数据库连接池繁忙,近期数据缓存,直接获取,避免请求验证返回的过程消耗
    分布式缓存等等
    我们是否需要缓存:原因:结论:需要
    3. 缓存用哪个? 和 我们当前缓存的使用场景
    static或者map做缓存
    对于本地缓存来说,如果不需要淘汰算法则选择ConcurrentHashMap,例如我们的名字 NameGenerator
    如果需要淘汰算法和一些丰富的API,Caffeine。
    我们当前缓存的使用场景
    使用无淘汰缓存:NameGenerator使用了初始化时从数据库缓存到ConcurrentHashMap中,检查名称是否可用时使用,减轻高并发时数据库的请求压力 (可不可以使用 caffiene 无界缓存,性能会不会更好)
    使用guava cache ,
    使用场景
    减少频繁登录对数据库的访问
    写少读多
    1.进入场景时会获取缓存
    2.邮箱服务发送时不在线会获取缓存,日志服务使用时,
    3.其他服初始化玩家数据时和机器人数据构建时
    4.GM线上业务使用时

    每5分钟保存一次到缓存,1天失效
    4.guava 和caffeine的区别在哪

    5.结论:caffeine是否替换
    1.无成本替换,API接口非常接近

    https://github.com/ben-manes/caffeine/wiki/Home-zh-CN