Redis 缓存优化:使用泛型、缓存逻辑、常量和 String.format() 方法
这段代码可以进行如下优化:
-
使用泛型:将代码中的
(Page<WxNewsItemDO>)部分改为redisTemplate.opsForValue().get('330481106227:wxNew:' + page.getCurrent(), Page.class),这样可以避免代码中的强制类型转换。 -
添加缓存逻辑:在获取缓存数据之前,可以先判断缓存中是否存在对应的数据,如果存在则直接返回缓存数据;如果不存在则从数据库中获取数据并存入缓存中。
-
优化键的拼接:将
'330481106227:wxNew:' + page.getCurrent()这部分的字符串拼接改为使用String.format()方法,可以提高代码的可读性和维护性,例如String.format('330481106227:wxNew:%s', page.getCurrent())。 -
使用常量:将字符串
'330481106227:wxNew:'抽取为一个常量,例如private static final String CACHE_KEY_PREFIX = '330481106227:wxNew:',这样可以提高代码的可维护性和可复用性。
综上所述,优化后的代码可以如下所示:
private static final String CACHE_KEY_PREFIX = '330481106227:wxNew:';
public Page<WxNewsItemDO> getWxNewsItems(Page<WxNewsItemDO> page) {
// 判断缓存中是否存在对应的数据
Page<WxNewsItemDO> cachedData = redisTemplate.opsForValue().get(CACHE_KEY_PREFIX + page.getCurrent(), Page.class);
if (cachedData != null) {
return cachedData;
}
// 从数据库中获取数据
Page<WxNewsItemDO> data = fetchDataFromDatabase(page);
// 将数据存入缓存
redisTemplate.opsForValue().set(CACHE_KEY_PREFIX + page.getCurrent(), data);
return data;
}
private Page<WxNewsItemDO> fetchDataFromDatabase(Page<WxNewsItemDO> page) {
// 从数据库中获取数据的逻辑
// ...
}
原文地址: https://www.cveoy.top/t/topic/pJZc 著作权归作者所有。请勿转载和采集!