#PHP Redis Queue

这是一个可以扩展的队列处理程序,没有使用框架。我们的项目使用Yii的框架,所有这里的测试示例就按照Yii的方式来编写的。

###简要设计思路

存入的将数据分散到64个Redis的list中去,这样是便于扩展机器来提高负载

后台运行一个PHP主进程,分别fork 64个子进程去对应处理 64个list中的数据。

主进程要监控子进程状态,在子进程正常或意外结束后及时重新开启对应子进程。

###现状

在我们项目中已经使用一年多,性能和稳定性方面都表现的很不错。

目前是单机运行64个进程,因为单机处理效率已经能够满足需求,就没有在处理程序这个理做更多分布式开发了。

#开发与使用

使用上参考 test/QueueCommand.php 主要是3个命令:start,stop,restart 非Yii框架参考这个文件编写代码即可。

test/queue_config.php 是配置文件,使用前请先看看。

###设置配置文件路径

// Yii 这样配置:

Yii::app()->params->queueConfig;

// 通用的配置方式:

QueueConfig::$configPath = '/data/www/test/queue_config.php';

###开发自己的worker处理程序

参考 src/worker/CWorkerForYii.php 从CWorker继承,然后实现相应的方法即可。

当然,你需要在配置文件中配置你的类文件名称:'WORKER'=> 'CWorkerForYii',

php redis 清除队列,PHP Redis Queue相关推荐

  1. php redis 消息队列_PHP Redis实现消息队列

    内存 比如要推送一条全局消息,如果真的给所有用户都推送一遍的话,那么会占用很大的内存,实际上不管粘性有多高的产品,活跃用户同全部用户比起来,都会小很多,所以如果只处理登录用户的话,那么至少在内存消耗上 ...

  2. redis阻塞队列 java,Redis阻塞/非阻塞队列

    非阻塞队列RPUSH key value [value ...] RPOP key LPUSH key value [value ...] LPOP key R/LPUSH都是后进先出操作,组合起来则 ...

  3. python redis 消息队列_python中利用redis构建任务队列(queue)

    Python中的使用标准queue模块就可以建立多进程使用的队列,但是使用redis和redis-queue(rq)模块使这一操作更加简单. Part 1. 比如首先我们使用队列来简单的储存数据:我们 ...

  4. Redis消息队列三种方案

    什么是消息队列: 消息(Message)是指在应用间传输的数据,消息可以包括简答的文本字符串,也可以有嵌入对象等,消息队列(Message Queue)是一种应用间的通信方式,用来监视消息是否发送成功 ...

  5. SpringBoot 整合:Redis延时队列的简单实现(基于有赞的设计)

    点击关注公众号,Java干货及时送达 来源:blog.csdn.net/qq330983778/article/details/99341671 设计 之前学习Redis的时候发现有赞团队之前分享过一 ...

  6. 把Redis当作队列来用,真的合适吗?

    阅读本文大约需要 15 分钟. 大家好,我是 Kaito. 我经常听到很多人讨论,关于「把 Redis 当作队列来用是否合适」的问题. 有些人表示赞成,他们认为 Redis 很轻量,用作队列很方便. ...

  7. 把 Redis 当作队列来用,真的合适吗?

    转自公众号:水滴与银弹 我经常听到很多人讨论,关于「把 Redis 当作队列来用是否合适」的问题. 有些人表示赞成,他们认为 Redis 很轻量,用作队列很方便. 也些人则反对,认为 Redis 会「 ...

  8. redis简单队列java_使用Redis的简单消息队列

    redis简单队列java 在本文中,我们将使用列表命令将Redis用作简单的消息队列. 假设我们有一个允许用户上传照片的应用程序. 然后在应用程序中,我们以不同大小显示照片,例如Thumb,Medi ...

  9. redis延迟队列 实现_灵感来袭,基于Redis的分布式延迟队列

    一.延迟队列 延迟队列,也就是一定时间之后将消息体放入队列,然后消费者才能正常消费.比如1分钟之后发送短信,发送邮件,检测数据状态等. 二.Redisson Delayed Queue 如果你项目中使 ...

  10. 如何保证 Redis 消息队列中的数据不丢失?

    Redis 最常见的业务场景就是缓存读取与存储,而随着时间的推移,有人开始将它作为消息队列来使用了,并且随着 Redis 版本的发展,在 Redis.2.0.0 中新增了发布订阅模式(Pub/Sub) ...

最新文章

  1. 6. 简单又复杂的“运算符”,建议你看一哈
  2. 00600 ora 关闭oracle_ORA-00600的解决方法?
  3. 深入浅出之虚函数原理篇(笔记三)
  4. Date日期类型的绑定
  5. 递归概念分类注意事项
  6. bootstrap 一排5个_BootStrap从基础到项目实战_第1季_03章_02_CSS样式栅格系统实例
  7. 1.4_10 有一门不及格的学生
  8. 如何让主机合规分析报告评分达到90分?
  9. SQL Server高级查询之常见数据库对象(视图)第五章节
  10. mysql 不等于查询优化_MySQL查询性能优化
  11. js页面跳转并传值问题
  12. Arduino蜂鸣器唱曲天空之城
  13. 无限循环滚动代码阿里巴巴国际站店铺装修代码底图滚动黑色半透明显示效果自定义内容装修代码全屏显示
  14. 大组合数取模hdu5698 瞬间移动
  15. 关于单片机电路中NPN三极管与PNP三极管的接法问题
  16. 【问题整理】计算机故障相关
  17. 图像处理:图像清晰度评价
  18. 2500 tons quarry machine
  19. 响铃:AWE2018只是“草船”,三星已成大屏电视“东风”
  20. manifest文件解决兼容性助手问题

热门文章

  1. 台式计算机怎么安装无线网卡,台式机用无线网卡,小编教你台式机怎么用无线网卡...
  2. nltk.stem 词干提取(stemming)
  3. 以太坊实战之《如何正确处理nonce》
  4. cmd命令行常用指令
  5. 【HTML5】input标签中的Require必填项
  6. Bar Chart Race」动态可视化
  7. 977计算机考研,中国海洋大学 977计算机技术与软件工程专业课经验分享
  8. 大型网站技术架构-第4篇 架构师
  9. LeetCode刷题小技巧-错题记录本-C++版本
  10. vue中处理文本不换行问题