Redis中list实现栈&队列&数组&阻塞、单播队列
作者:互联网
栈
用LPUSH创建名为“stack”的key并放入元素,使用LRANGE查看放入的元素,使用LPOP取出放入的元素;可以发现取出的顺序与放入的顺序相反(先进后出),其特性与Java中的栈一样。
LPUSH stack q w e r t y u i o p
LRANGE stack 0 -1
LPOP stack
队列
用LPUSH创建名为“queue”的key并放入元素,使用LRANGE查看放入的元素,使用RPOP取出放入的元素;可以发现取出的顺序与放入的顺序相同(先进先出),其特性与Java中的队列一样。
LPUSH queue q w e r t y u i o p
LRANGE queue 0 -1
RPOP queue
数组
用LPUSH创建名为“array”的key并放入元素,使用LRANGE查看放入的元素,使用LSET修改对应下标的元素,使用LRANGE查看放入的元素;可以发现对应下标的元素已经被修改(下标访问),其特性与Java中的数组一样。
LPUSH array q w e r t y u i o p
LRANGE array 0 -1
LSET array 0 q
LRANGE array 0 -1
阻塞单播队列
使用LRANGE查看名为“st”的key中的元素,发现“st”中没有元素,使用BLPOP从“st”取出元素,并且等待时间为99秒,发现窗口进入等待状态;重新打开一个redis客户端窗口,用LPUSH在“st”中放入一个元素;可以发现刚才等待中的窗口中返回了对应的key和值。key中有元素时就响应,没有时则进入等待状态,可以有多个客户端同时等待同一个key,可以使用其特性,实现阻塞的单播队列。(一个客户端也可以同时等待多个key)
LRANGE st 0 -1
BLPOP st 99
LPUSH st q
标签:队列,Redis,元素,list,st,LRANGE,key,放入,LPUSH 来源: https://blog.csdn.net/jt781861965/article/details/114156640