使用缓存的方式很多,有基于工具类手动操作的,也有基于注解的,各有千秋,接下来将借助spring+redis实现基于注解的缓存使用....,直接到DB中读取并返回.接着我们再一次运行程序,可以看到以下结果:
没有打印DB查询中的日志信息,目测应该是走了缓存,为了验证我们的猜测,我们使用redis-cli命令连接redis查看缓存中有没有信息...上边这种是使用SpEL表达式生成key的方式存储查询缓存,当然我们也可以把注解中的keyGenerator="customerkeyGenerator"然后删除key属性来生成key的方式存储缓存,此处不做赘述...总结:
通过上述一系列的配置和编码,我们实现了spring+redis实现的基于注解的查询缓存,接下来分析一下其优缺点:
优点:1)使用简单方便,2)缓存key管理统一
缺点:1)对于一些特定的场景不够灵活...2)存在缓存穿透、雪崩的问题
ps:原创不易,多多支持!