redis队列一些问题
来源:互联网 发布:wps多个表格数据汇总 编辑:程序博客网 时间:2024/05/21 19:25
插入队列
1、lpush
将所有指定的值插入到存于 key 的列表的头部。如果 key 不存在,那么在进行 push 操作前会创建一个空列表。 如果 key 对应的值不是一个 list 的话,那么会返回一个错误。
PHP代码示例
public function push($k,$value){ $value = (is_object($value) || is_array($value)) ? json_encode($value) : $value; $result=$this->handler->lpush($this->options['prefix'].$k,$value); if($result){ return true; }else{ return false; } }
(可以使用一个命令把多个元素 push 进入列表,只需在命令末尾加上多个指定的参数。元素是从最左端的到最右端的、一个接一个被插入到 list 的头部。 所以对于这个命令例子 LPUSH mylist a b c,返回的列表是 c 为第一个元素, b 为第二个元素, a 为第三个元素。)
2、rpush
向存于 key 的列表的尾部插入所有指定的值。如果 key 不存在,那么会创建一个空的列表然后再进行 push 操作。 当 key 保存的不是一个列表,那么会返回一个错误。
PHP代码示例
public function push($k,$value){ $value = (is_object($value) || is_array($value)) ? json_encode($value) : $value; $result=$this->handler->rpush($this->options['prefix'].$k,$value); if($result){ return true; }else{ return false; } }
(可以使用一个命令把多个元素打入队列,只需要在命令后面指定多个参数。元素是从左到右一个接一个从列表尾部插入。 比如命令 RPUSH mylist a b c 会返回一个列表,其第一个元素是 a ,第二个元素是 b ,第三个元素是 c。)
弹出队列
1、brpop
BRPOP 是一个阻塞的列表弹出,从尾部弹出元素,它是 RPOP 的阻塞版本,因为这个命令会在给定list无法弹出任何元素的时候阻塞连接。 该命令会按照给出的 key 顺序查看 list,并在找到的第一个非空 list 的尾部弹出一个元素。BRPOP 和 BLPOP 基本是完全一样的,除了它们一个是从尾部弹出元素,而另一个是从头部弹出元素。
PHP的示例代码
public function pop($name,$sendtimeout=0){ if(empty($sendtimeout)){ $timeout=$this->options['timeout']; }else{ $timeout=$sendtimeout; } $keys=array($this->options['prefix'].$name); $value = $this->handler->brPop($keys,$timeout); $jsonData = json_decode( $value[1], true ); return ($jsonData === NULL) ? $value[1]: $jsonData; }
阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。
2、blpop
blpop 是一个阻塞的列表弹出,从头部弹出元素
2、rpop
移除并返回存于 key 的 list 的最后一个元素。
3、lpop
移除并且返回 key 对应的 list 的第一个元素。
其他代码示例同第一个类似,名字改改就行
以上
- redis队列一些问题
- laravel5.1redis队列重复执行问题
- PHP - Redis队列解决执行速度问题
- redis 队列
- redis 队列
- Redis 队列
- 关于ArrayBlockingQueue队列的一些问题
- 关于栈与队列的一些问题
- 队列实现的一些问题(scalable, persistent)
- 队列与栈的一些基本问题
- 5.redis cluster遇到的一些问题
- window redis 安装遇到的一些问题
- 刚接触redis的一些问题
- Laravel中用Redis来做任务队列---出现重载问题
- 关于jquery的ajax队列的一些问题
- 用单调队列的思想优化一些dp问题
- redis队列的安装与配置,还有一些安全方面的配置
- 在redis使用过程遇到的一些问题的总结
- 蓝桥杯 基础练习 矩形面积交 【简单几何】
- 内网穿透神器ngrok,将本地项目映射外网访问
- Oracle的级联查询(CONCATENATION)
- 项目中引入webMagic爬取一个网页
- 阿里云总裁胡晓明:AI泡沫过后,下一站是“产业AI”
- redis队列一些问题
- keil can not access target
- 到底什么是javaEE、什么是JavaSE,我们用Spring等框架用的jdk到底是什么的思考
- 关于MySQL中default怎么用
- python进阶之PIL 简明教程
- 分布式服务跟踪及Spring Cloud的实现
- C# typeof() 和 GetType() 的区别
- ubuntu 使用 mysql 并将其连接到C++程序中
- java swing实现合金弹头小游戏源码