redis叫号逻辑
2017-01-09 10:49:30 0 举报
Redis叫号逻辑是一种基于内存的高性能键值存储系统,常用于实现排队、叫号等场景。其核心思想是通过使用唯一的序列号来标识每个等待服务的对象,并通过原子操作保证并发访问的安全性。当有新的请求到来时,系统会为其分配一个唯一的序列号,并将其插入到已排序的队列中。同时,系统会根据当前正在服务的对象的序列号来更新队列中的其他对象的位置,以确保它们按照顺序等待服务。当某个对象被服务完成后,系统会将其从队列中删除,并将下一个等待服务的对象的序列号返回给客户端。这种简单而高效的设计使得Redis叫号逻辑成为了许多应用场景中的理想选择。
作者其他创作
大纲/内容
结束
businessidopenidno
更新businessid的hash的queuenowopenid为“”,queuenowno为“”
list.size()是否大于0
ticket是否与hash 中的ticket相同
是
是否有人轮到
否
hashkeyfans:qrcodenow:id1...valuebusinessid ticket name\tcreatetimepromotequeuenowopenidqueuenowidqueuenownoqueuesize
businessid
发送二维码已失效
获取list的第一位queue
list
给list发送消息当前轮到queue的no在排人数list.seze()-1
发送无二维码
queueno是否等于hash的queuenowno
给queuenowopenid发送结束消息
openid
给list发送消息当前轮到queue的no在排人数list.size()-1
可以放进queuenowid
next
发送此人不在队列
Stringkeyfans:myqueue:id1...valuebusinessid1...
更新businessid的hash的queuenowopenid为queue的openid,queuenowno为queue的no
queueno是否为“”
id
删除queue的openid的记录
设置queuenowid的myqueue为“”
队伍和当前轮到都没人
businessidticketqueueno
可以设置成hash
hash
hash是否存在
当前有人轮到或队伍有人在排,其一必为真
0 条评论
下一页