本文介绍了JetCache的异步API,通过异步方式访问缓存可以提升性能,降低RT。
JetCache的异步API和同步API是完全兼容的,甚至用同步的开发方式也能获得一部分异步带来的好处。
Jedis一直是Java中使用最广泛的Redis client,现在我们又有了一个新的选择:lettuce。
lettuce由Pivotal(也就是目前维护Spring的公司)的Mark Paluch发起,支持异步API和Reactive API,连接可以复用,近期开发也非常活跃,成为Redis客户端中的一个新锐。
JetCache提供的统一API也支持异步操作方式,当前,只有使用lettuce访问Redis能实现异步。
当下层使用的驱动不支持异步,比如访问Tair或者使用Jedis访问Redis时,会自动退化为同步堵塞的方式。所以从API上说,是完全兼容和一致的。
JetCache提供了简单易用的常规API(正常方法命名)和具有完整返回值的大写方法名API,异步API基于这些大写方法名的方法。
关于JetCache API的介绍请参考这里:https://github.com/alibaba/jetcache/wiki/CacheAPI_CN
为什么要异步访问缓存呢?虽然大部分情况下Redis缓存访问很快,但毕竟是一个网络IO操作,同步访问缓存多少也会增加一点RT,特别是在循环中操作缓存时,就积少成多了。
比如下面的例子从jdbc结果集读取了数据,然后写缓存: