Laravel + Redis 实现消息队列

完整的消息队列由消息队列处理程序组成。

基本的流程就是由生产者(业务代码)将数据推送到队列中(此处使用的是Redis),然后由消费者(处理程序)从队列中取出数据进行加工处理。

消息队列主要解决异步处理、应用间耦合,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。例如处理需要异步处理的比较耗时操作(邮件发送、文件上传下载),或者高并发业务(秒杀、消息推送)。

下面列举了一个例子,可以让你更好的理解消息队列是怎么样实现的?

本例是实现添加视频播放数的消息队列。

阅读更多

Laravel的HTTP响应Response

前几天分析了 Laravel 框架的相关内容:

今天我们来看看 Laravel中是怎么处理 HTTP 响应的,也就是关于 Response 的代码分析。

找到返回 Response 的代码块

入口文件 public/index.php

首先进入 Laravel 框架的入口文件中可以看到 handle函数中 返回了 $response实例。

阅读更多

Laravel基于Composer实现自动加载原理分析

一般的框架中都会使用 Composer 工具进行包管理,Composer 有自动加载机制可以自动加载框架中所依赖 的类库等文件,那么它的自动加载机制是怎么实现的呢?本篇文章将介绍 Laravel 框架中 Composer 的自动加载原理。

目录

  • 从入口文件开始
  • getLoader 方法
  • loadClassLoader 方法
  • getInitializer 方法
  • Composer 包管理类自动加载注册
  • findFile 方法
  • findFileWithExtension 方法
  • 自动加载文件数组
  • 总结
阅读更多

Laravel的中间件原理

在上一篇文章中介绍过 Laravel 的生命周期,这也算是对Laravel 框架入门的一些了解,最近几天也继续探究了下 Laravel 的中间件,出于好奇于是通过查看源码和阅读几篇深度好文,也是对 Laravel 的中间件有了深刻的印象,本篇文章比较长建议结合 IDE 参照源码进行理解。

目录

  • 什么是中间件

  • 创建中间件

  • array_reduce 函数

  • 中间件源码分析

阅读更多

Laravel的生命周期

目录

  • 简介

  • 一、Composer 自动加载项目依赖

  • 二、创建应用实例

    • 创建容器

    • 绑定内核

      HTTP 内核类
      Console 内核
      绑定异常处理

  • 三、接收请求并响应

    • 解析内核
    • 处理 HTTP 请求
    • 发送响应
  • 四、终止应用程序

  • 五、总结

  • References

Laravel的生命周期开始于 public/index.php,结束于 public/index.php。

客户端的所有请求都经由Web服务器引导到这个文件中。

以下是public/index.php 文件的源码和注释:

阅读更多

Laravel中操作Redis的各种数据类型

首先我在 Laravel 框架中用composer require predis/predis安装了redis。

然后我直接在框架中使用redis,因为报了个错误Please make sure the PHP Redis extension is installed and enabled,所以我了解到:

php连接redis常用的有两种驱动,phpredis和predis。
phpredis是以php扩展方式安装的,安装步骤比较繁琐,执行效率稍高。
predis是用php代码写的,安装非常简单,执行效率稍差。

因为我在之前的文章中写过使用redis,现在改为predis试试。

阅读更多

Laravel中包含多个路由文件

因为接口比较多,想按照模块给route做个区分,分成多个路由文件。

这里有2中方法:

1、用include_once包含

2、根据Laravel的加载方式引入

阅读更多

Laravel中使用Redis

Windows环境下安装Redis

1、下载:https://github.com/MicrosoftArchive/redis/releases

2、电脑新建 Redis 目录,将下载的 Redis-x64-3.0.504.zip 解压在该目录下

3、进入 Redis 目录,打开命令行 cmd ,启动 Redis :redis-server.exe redis.windows.conf 这时候若看到 Redis 特有的标识则代表服务启动成功,但是使用上面的启动命令,只要关闭了cmd窗口,服务将立即停止,所以需要将 Redis 设置为 Windows 下的服务,应该使用 redis-server --service-install redis.windows.conf 命令,执行成功后将会在电脑任务管理器的服务下看到 Redis 服务,这时只要将它开启即可。

阅读更多

PHP 关于字符串的处理

长度

1
int strlen ( string $string )	// 返回给定的字符串 string 的长度。

顺序

1
2
string str_shuffle ( string $str ) // str_shuffle 随机打乱一个字符串
string strrev ( string $string ) // strrev 反转字符串
阅读更多