Thinkphp5中使用redis队列发送消息
文章目錄
- 前言
- 一、php中怎么安裝redis?
- 二、windows中安裝redis
- 三、Thinkphp5中安裝think-queue擴展
- 四、在項目中實際使用。
- 總結
前言
REmote DIctionary Server(Redis) 是一個由 Salvatore Sanfilippo 寫的 key-value 存儲系統。Redis 是一個開源的使用 ANSI C 語言編寫、遵守 BSD 協議、支持網絡、可基于內存亦可持久化的日志型、Key-Value 數據庫,并提供多種語言的 API。
它通常被稱為數據結構服務器,因為值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。
一、php中怎么安裝redis?
1.首先在phpinfo.php中查看自己的版本信息:
2.下載redis。
https://windows.php.net/downloads/pecl/releases/igbinary/
3.解壓縮,把php_redis.dll和php_redis.pdb拷貝到 F:\phpstudy_pro\Extensions\php\php7.3.4nts\ext(每個人的目錄都不一樣)。
修改 php.ini ,打開php.ini:把extension=php_igbinary和extension=php_redis拷貝到php.ini當中。
二、windows中安裝redis
1.重新安裝完全版的 redis。
https://github.com/MicrosoftArchive/redis/releases
2.點擊 redis-server.exe 運行redis服務。
3.安裝Redis可視化管理工具。
Redis Desktop Manager 下載地址:https://github.com/uglide/RedisDesktopManager/releases
三、Thinkphp5中安裝think-queue擴展
1.首先查看 ThinkPHP 框架版本,然后進入Packagist 官網搜索 think-queue,并根據 ThinkPHP 版本選擇對應 think-queue 版本。
2.thinkphp-queue 地址:https://packagist.org/packages/topthink/think-queue
3.可直接使用 Composer 為當前項目安裝 think-queue 消息隊列插件
4.think-queue 安裝完成后,會在 application\extra\ 項目配置目錄下生成 queue.php 配置文件。
<?php use think\Env; return [//Redis驅動'connector'=>'redis',"expire"=>60,//任務過期時間默認為秒,禁用為null"default"=>"default",//默認隊列名稱"host"=>ENV::get('redis.host','127.0.0.1'),//Redis主機IP地址"port"=>ENV::get('redis.port','6379'),//Redis端口"password"=>ENV::get('redis.password',''),//Redis密碼"select"=>0,//Redis數據庫索引"timeout"=>0,//Redis連接超時時間"persistent"=>false,//是否長連接 ];think-queue 內置了Redis、Database、Topthink、Sync 四種驅動。
四、在項目中實際使用。
1.控制器中。
Sendmessage.php
application/job/Jobsendmessage.php
//自動執行fire方法中的功能。public function fire(Job $job,$send_data){//TOTO這里寫發送消息的邏輯//如果任務執行成功后 記得刪除任務,不然這個任務會重復執行,直到達到最大重試次數后失敗后,執行failed方法$job->delete();//也可以重新發布這個任務//$job->release($delay); //$delay為延遲時間}public function failed($data){// ...任務達到最大重試次數后,失敗了}2.運行redis服務。
這里使用的是pm2啟動一個json文件的方式的方式來運行。
或者在項目的根目錄下直接運行 queue:work --daemon --queue send_message
總結
這里只是簡單的使用了redis隊列的方式發送消息提醒,其他的功能使用有待后續研究。
總結
以上是生活随笔為你收集整理的Thinkphp5中使用redis队列发送消息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【有限元仿真】ABAQUS人工能量-AL
- 下一篇: git使用.md