Redis队列出队入队问题?

问题描述:

一个数组例如:

[021-56409836, 021-56409837, 021-56409838, 021-56409839, 021-56409840, 021-56409841, ....]

将其依次插入队列中,第一次请求过来取出第一个元素,第二个请求过来取出第二个元素.......依次往下,每次取出的元素再依次放入队尾;

比如数组元素为10个,,请求有11个,则第十一个请求应该取到最开始的第一个元素;也就是实例中的021-56409836;

请问如何实现???

阅读 4.1k
4 个回答
只要按照顺序插入、取出就可以了
$redis = new \Redis();
$redis->lpush('list',$val);
$redis->rpop('list',$val);

在Redis中保存一个计数器, 取走一个元素计数器加1, 计数器等于10时,重置为1。

<?php

$redis = new \Redis();
$redis->connect('127.0.0.1','6379');

$val = $redis->rpop('tel_queue');
$redis->lpush('tel_queue',$val);

RPOPLPUSH命令,你值得拥有。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题