更新数据时,CacheKit.put() 是否可以取代CacheKit.remove()

例如更新某条用户数据:

//......
user.setChannelId(channelId);
user.update();
CacheKit.remove(DicUtil.CACHE_USER_INFO, userId);
CacheKit.put(DicUtil.CACHE_USER_INFO, userId, user);

这里是不是可以省略掉CacheKit.remove()?
那么CacheKit.put()会覆盖掉之前的缓存数据吗?


评论区

Jbadbule

2017-02-06 09:17

实践出真知

杜福忠

2017-02-06 10:28

remove 比 put 好一点, 比如 可以起到懒加载的作用 省点内存

杜福忠

2017-02-06 10:34

@杜福忠 ps: 不要put, 只remove就可以了, 源码中已经put了,

/**
* Find model by cache.
* @see #find(String, Object...)
* @param cacheName the cache name
* @param key the key used to get data from cache
* @return the list of Model
*/
public List findByCache(String cacheName, Object key, String sql, Object... paras) {
ICache cache = getConfig().getCache();
List result = cache.get(cacheName, key);
if (result == null) { // 这里
result = find(sql, paras);
cache.put(cacheName, key, result); // 这里
}
return result;
}

nbjgl

2017-02-06 13:58

有道理

热门反馈

扫码入社