首先,二者最明显的区别是redis是分布式缓存、cache(如loadingCache)是本地缓存。其次,二者的特性有诸多不同,再次不一一展开,主要针对二者的使用场景进行部分说明,如有不当,欢迎指出。
- 是否对缓存一致性有强烈要求、数据是否频繁变更。本地缓存可能存在缓存不一致的情况,如数据进行了修改,但是单台服务器上的缓存还未过期,会出现打到部分机器上的请求拿到错误的数据,而未缓存的机器则可以拿到正确数据并缓存。
- 数据量是否较大。如果数据量较大,建议使用redis,因为本地缓存会占用jvm的内存,数据量过大的情况下会降低服务器性能,同时肯能引发gc。
- 如果数据不会频繁变更、数据量不大、对性能有较高要求的接口建议使用本地缓存。本地缓存性能更好,redis需要网络IO。
以上,欢迎指正及补充更新。