一、背景需求
需求主要为:
1、优先级分为高、中、低(优先级队列);
2、支持多生产者、多消费者模型(解决竞争);
3、期间进程退出,队列内容不会丢失(持久化);
选型方面考虑了第三方工具,先调研了一下Redis,发现其中LIST数据结构非常适用上诉需求;
二、相关知识
2.1 List结构
Redis List是Redis最重要的数据结构之一,内部实现是一个双向链表,链表上的每个节点都包含一个字符串。主要功能有:
1、从链表两端推入(push)、弹出(pop)元素;
2、根据偏移量对链表进行修剪(trim);
3、读取单个或者多个元素;
4、根据值查找或者移出元素;