最近在跟着视频学redis
在学到rightpushall方法时出现了问题.
在调用rightpushall方法之后发现插入到redis的结果是这样的,全都插入到一行上了
老师的方法插入之后是这样的
@Service
@Slf4j
public class ListCacheServiceImpl {
@Resource
private RedisTemplate<String,Object> redisTemplate;
/***
* 需求分析
* 显示当前最新的5天文章信息
* 1.初始化 存5个文章信息
* 2.添加文章
* 3.删除文章
*
*/
public void initArticle(){
String key = "article:Top5";
//在mysql中查询5个文章
LocalDateTime localDateTime = LocalDateTime.now(); //当前时间
String dateTime = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd:mm:ss"));
List<Article> lists = new ArrayList<>();
for (int i = 1; i < 6; i++) {
Article AR = new Article();
AR.setId("1000" + i);
AR.setTitle("文章标题" + i);
AR.setContent("文章内容" + i);
AR.setAuthor("作者" +i);
AR.setCreateDate(dateTime);
AR.setClickNum(new Random().nextInt(1000) + 1);
lists.add(AR);
//redisTemplate.opsForList().rightPush(key,AR);
}
log.info("-> 存入redis指定key中->");
redisTemplate.opsForList().rightPushAll(key,lists);
}
}
我查了资料也没弄清楚是咋回事,最后我换一种思路就好了..
@Service
@Slf4j
public class ListCacheServiceImpl {
@Resource
private RedisTemplate<String,Object> redisTemplate;
/***
* 需求分析
* 显示当前最新的5天文章信息
* 1.初始化 存5个文章信息
* 2.添加文章
* 3.删除文章
*
*/
public void initArticle(){
String key = "article:Top5";
//在mysql中查询5个文章
LocalDateTime localDateTime = LocalDateTime.now(); //当前时间
String dateTime = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd:mm:ss"));
for (int i = 1; i < 6; i++) {
Article AR = new Article();
AR.setId("1000" + i);
AR.setTitle("文章标题" + i);
AR.setContent("文章内容" + i);
AR.setAuthor("作者" +i);
AR.setCreateDate(dateTime);
AR.setClickNum(new Random().nextInt(1000) + 1);
redisTemplate.opsForList().rightPush(key,AR);
}
log.info("-> 存入redis指定key中->");
}
}
但最终还是没用明白最开始的那个错误是怎么回事..