我用jfinal redis的时候发现Redis.use返回的cache其实支持redis的方法还在少数,很多都不支持,比如我需要用pipline去做一些流水线的工作cache就没有
一般的方法可能是我Redis.use().GetJedis()后用Jedis去做pipline,这样一般情况可能可以解决的,但是这个pipline的hset只能支持(string,string,string)的函数模型,而我想缓存controller 需要(string,string,controller)。
在jfinal redis cache 的hset中有封装一层先转成byte,再转string,而cache并没有pipline的方法供我去调用,所以我即使获取了jedis还需要把cache的参数转换的代码keyToBytes那部分拷贝过来,一方面代码冗余了,第二写法也不好看,维护成本也高
我现在想去实现一个自己的MyCache的类集成Cache去添加一个pipline的接口,但是我自己的MyCache又加入不到RedisPlugin中,plugin start后是直接add 他自己的cache
我想问,如果我想扩展一些redis的方法到redis cache中怎么做比较好?
要支持更加全面的 jedis 功能,可以考虑下面两种方式
1:做一个 RedisExt 扩展类,里面依赖 Redis、Cache 的相关功能获取 Jedis 对象,去实现一些功能
2:改 jfinal redis 插件源代码,在 Cache 中添加实现
jfinal 后续版本也会根据需求来添加更多 API