Redis可以部署在数据库前端作为旁路缓存使用,业务在访问数据时,可以先访问Redis查询其中是否有自己需要的数据,这时候会有两种情况:
String cacheKey = “productid_11010003”;
String cacheValue = redisCache.get(cacheKey);
//缓存命中
if ( cacheValue != NULL)
return cacheValue;
//缓存缺失
else
cacheValue = getProductFromDB();
redisCache.put(cacheValue) //缓存更新
按照Redis是否接受写请求,可以分为只读缓存和读写缓存。
这种使用场景下,具体实现逻辑是这样的
优点
数据库和缓存的数据可以保持完全一致,并且缓存中永远保留的是热点数据
缺点
每次写操作都需要将缓存中数据删除,之后请求会触发缓存缺失和缓存更新,访问延迟变大
如果对于数据一致性有要求并且写请求较少,可以考虑使用只读缓存
如果对于缓存和数据库数据的一致性要求不高,并且非高并发场景,则可以考虑使用读写缓存。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。