list元素被取完,key1会被清除 llen key:返回指定的key关联的链表中的元素的数量 list数据类型应用案例:消息队列 比如有这样一个需求:实现一个任务调度系统==>生产者不断产生任务,放入task-queue 排队,消费者不断拿出任务来处理,同时放入一个tmp-queue暂存,如果任务处理成功,则清除tmp-queue;否则,将任务弹回task-queue。 笔者这里提供一个实现思路,就不贴代码了,其实就是上述API的简单应用: 1.生产者将生产的任务lpush进task-queue中 2.消费者通过rpoplpush将taks-queue中取任务并暂存任务到 tmp-queue中 3.如果任务处理成功,tmp-queue通过rpop清除相应任务;任务处理失败,则rpoplpush将任务从tmp-queue中清除并存入task-queue中 4.为了避免消费者程序在处理任务失败之后没有及时将 rpoplpush失败的任务时就已经挂掉,可以加入一个管理tmp-queque的角色,以便在这种情况时也能将处理失败的任务lpush进task-queue中。