jetcache
jetcache copied to clipboard
增加redis层面hash结构的缓存读写支持
场景需求:
. 汇总数据查询:依赖的数据源较多,缓存键值变化较多,分布式系统。 . 使用spring注解,面向入门开发人员 . 某基础数据a更新后,需要清空A、B进程的该企业ID下的某业务的所有缓存 . 汇总计算的量比较大,使用缓存存在意义较大,否则DB层面很容易就将响应时间中位数拉长
使用hash的(相较于String)
优势:
. 将缓存数据存在{服务}{企业ID}{业务模块}的hash键下面,不同的汇总计算方式使用hash下的不同key存储,可以通过键名称快速删除(String下存储需要通过keys命令进行前缀匹配,目前使用注解可能无法做到)
劣势:
. 缓存的失效时间只能根据hash的key设置,无法设置到内部的key
不知道以上是否表述清楚了
提供支持
目前已经粗糙实现了lettuce的hash,putIfAbsent getAll除外。如果认为有必要,可以开个分支来实现。 实现注解name的Expression Eval 作为hash的key, key作为hash内部key 通过配置启用hash。
我知道你的意思,想支持redis的hash commands。
jetcache原来设计是一个通用的缓存框架,先支持了tair,然后才支持了redis,如果不是偷懒本来还应该支持memcached。
redis特定的能力不能简单的直接实现,如果要做应该是做一个可选的AdvancedCache继承Cache接口。注解的话,比较难设计,容易引入复杂性和歧义。