无名 发表于 2022-5-8 17:02:09

【LSP】使用Redis做消息队列


http://cdn.u1.huluxia.com/g4/M01/6B/10/rBAAdl93Aq2AANWWAACt4WdlvYs210.jpg
基于内存的单线程数据库,使Redis的线程安全性与性能极高。而Redis的双向链表数据类型(List)天生就可作为消息队列存储消息.

在这里就不说消息队列的等等一些优点。但是补充一下Redis的List类型的几个命令,你可以指定将一个元素投送到列表的头部(左边)或者尾部(右边),当然也可以指定从列表的头部或尾部取出数据.

LPush:添加元素至列表的头部http://cdn.u1.huluxia.com/g4/M01/6B/10/rBAAdl93Aq6AWrOUAAANJObVzhc903.png
http://cdn.u1.huluxia.com/g4/M01/6B/10/rBAAdl93Aq-AXQmcAAAZjlqj-rk068.png




RPush:添加元素至列表的尾部
http://cdn.u1.huluxia.com/g4/M01/6B/10/rBAAdl93Aq-AXybKAAAQw4qtVNY613.png
http://cdn.u1.huluxia.com/g4/M01/6B/10/rBAAdl93ArCAK2JtAAAajQQzyuw520.png



LPop:移除并获取列表的头部的第一个元素

http://cdn.u1.huluxia.com/g4/M01/6B/10/rBAAdl93ArCATsGDAAAaheoOGZ8643.png
http://cdn.u1.huluxia.com/g4/M01/6B/10/rBAAdl93ArGAc5WdAAAbSnLXcvs015.png


RPop:移除并获取列表的尾部的第一个元素

http://cdn.u1.huluxia.com/g4/M01/6B/10/rBAAdl93ArGAMDlDAAAJ2fRk8II895.png
http://cdn.u1.huluxia.com/g4/M01/6B/10/rBAAdl93ArGAaJRcAAAbkSUYl3w414.png


BLpop:移出并获取列表头部的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。命令格式:blpop key timeout,当timeout=0时,表示一直阻塞等待,直到有其他客户端执行rpush或者lpush命令,插入数据后,阻塞才解除.

BRpop:与BLpop相同,不同的是它是移除列表尾部的第一个元素.
页: [1]
查看完整版本: 【LSP】使用Redis做消息队列