一、热点新闻列表
1.需求
热点新闻列表 获取最新五条首页新闻
默认首页显示五条热点新闻 具备分页功能
后台管理员可以置顶新闻
2. 代码
@Slf4j
@Service
//模拟热点新闻列表
public class ListCacheServiceImpl {
@Autowired
private RedisTemplate<String,Object> redisTemplate;
@Resource(name = "redisTemplate")
ListOperations<String,String> listOper;
/*
* 需求:
*.热点新闻列表 获取最新五条首页新闻
* 1.默认首页显示五条热点新闻 具备分页功能
* 2.后台管理员可以 置顶新闻
*
* */
//初始化新闻
public void initNewsTop5(){
String key="baidu:news:top5";
listOper.rightPush(key,"1.kunkun演唱会");
listOper.rightPush(key,"2.ikun露鸡脚");
listOper.rightPush(key,"3.ikun露鸡脚");
listOper.rightPush(key,"4.ikun露鸡脚");
listOper.rightPush(key,"5.ikun露鸡脚");
}
/*
* 显示最新五条新闻
* */
public List<String> getListTop5(){
String key="baidu:news:top5";
List<String> range = listOper.range(key, 0, 4);
return range;
}
/*
* 置顶新闻
* */
public void addBaiduNewsTop(String context){
String key="baidu:news:top5";
listOper.leftPush(key,context);
}
}
二、任务队列(商城物流队列)
/*
* List任务队列 模拟京东商城物流订单列表地址
* 生成物流队列:
* 1.商家发货
* 2.北京海淀区--》北京首都国际机场
* 3.首都机场-》天河机场
* 4.天河机场-》江夏区
* 5,江夏区-》小区
* 6.已签收
*
* */
/*
* 1.生成物流队列(客户完成支付功能 会根据商家收获地址--用户收获地址)
* */
public void initProductsQueue(String cardId){
//待执行任务队列
String key="product:queue:excute"+cardId;
listOper.leftPush(key,"1.商家发货");
listOper.leftPush(key,"2.北京海淀区--》北京首都国际机场");
listOper.leftPush(key,"3.首都机场-》天河机场");
listOper.leftPush(key,"4.天河机场-》江夏区");
listOper.leftPush(key,"5,江夏区-》小区");
listOper.leftPush(key,"6.已签收");
}
/*
* 消费队列
* */
public String touchQueue(String cardId){
//待执行任务队列
String key="product:queue:excute"+cardId;
//已完成队列
String succKey="product:queue:success"+cardId;
return listOper.rightPopAndLeftPush(key,succKey);
}
/*
* 商家 物流公司 快递还有几个任务未完成
* */
public List<String> productsQueueExeute(String cardId){
String key="product:queue:excute"+cardId;
return listOper.range(key,0,-1);
}
/*
* 买家 快递到哪里了
* */
public List<String> productsQueueSuccess(String cardId){
String key="product:queue:success"+cardId;
return listOper.range(key,0,-1);
}
测试:
@Test
public void testProducts(){
listCacheService.initProductsQueue("1001");
listCacheService.touchQueue("1001");
listCacheService.touchQueue("1001");
System.out.println(listCacheService.productsQueueExeute("1001"));
System.out.println(listCacheService.productsQueueSuccess("1001"));
}