当前位置: 首页 > news >正文

fastadmin 基本使用配置


fastadmin 版本 1.3.5
thinkphp  版本 5.0.25


配置 cache         为 redis 保存

// +----------------------------------------------------------------------
// | 缓存设置
// +----------------------------------------------------------------------
'cache'                  => [
    // 驱动方式
    'type'   => 'redis',
    'host'                   => Env::get('redis.hostname'),
    'password'               => Env::get('redis.password'),
    'port'                   => Env::get('redis.hostport'),
    'select' => 2,     # 设置保存数据库
    // 缓存保存目录
    'path'   => CACHE_PATH,
    // 缓存前缀
    'prefix' => 'cache_',
    // 缓存有效期 0表示永久缓存
    'expire' => Env::get('redis.expire'),

],


配置 session     为 redis 保存

 // +----------------------------------------------------------------------
// | 会话设置
// +----------------------------------------------------------------------
'session'                => [
    'id'             => '',
    // SESSION_ID的提交变量,解决flash上传跨域
    'var_session_id' => 'fastadmin',
    // SESSION 前缀
    'prefix'         => 'session', # 当前作用域
    // 驱动方式 支持redis memcache memcached
    'type'           => 'redis',
    'session_name'           => 'session_', # session_ 前缀
    // 是否自动开启 SESSION
    'auto_start'     => true,

    'host'                   => Env::get('redis.hostname'),
    'password'               => Env::get('redis.password'),
    'port'                   => Env::get('redis.hostport'),
    'select' => 2,     # 设置保存数据库
    // 缓存有效期 0表示永久缓存
    'expire' => Env::get('redis.expire'),
    //'cache_limiter'=>''
],

配置文件访问到第三方服务器 dfs

/**
 * CDN地址
 */
'cdnurl'    => '',

配置 token 保存到 redis 
// +----------------------------------------------------------------------
// | Token设置
// +----------------------------------------------------------------------
'token'                  => [
    // 驱动方式
    'type'     => 'Redis',
    // 缓存前缀
    'key'      => '9M1d3jy2gGbtfXSQAZ4oIslC0Yz56cFK',
    // 加密方式
    'hashalgo' => 'ripemd160',
    // 缓存有效期 0表示永久缓存
    'expire'   => 0,
    'host'                   => Env::get('redis.hostname'),
    'password'               => Env::get('redis.password'),
    'port'                   => Env::get('redis.hostport'),
    'select' => 2,     # 设置保存数据库
],


行为定义:就是多个方法调用,使代码更简洁,,不是异步,是同步调用,,相当于 common 里面的方法

//注册成功的事件
Hook::listen("user_register_successed", $registerdata);
区别在于,没有也不会报错
定义行为 https://www.kancloud.cn/manual/thinkphp5/118130


如果修改了 public/assets/js/ 下的公共文件,
就需要 运行 php think min -m all -r all 进行更新压缩文件,
不然在debug=false 不会执行修改的代码


配置 workman nginx 端口转发

ws://192.168.1.202/ws

location /ws {
    proxy_pass http://127.0.0.1:2346;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    rewrite /ws/(.*) /$1 break;
    proxy_redirect off;
}

workman crontab

 # 每个进程启动都会调用一次,多个进程调用多次,同时执行
var_dump($worker->count);

if($worker->id === 0){
    new Crontab('1 * * * * *', function(){
        echo "test1".date('Y-m-d H:i:s')."\n";  #1
        sleep(5);
    });


    new Crontab('1 * * * * *', function(){
        echo "test2".date('Y-m-d H:i:s')."\n"; #4
    });

}elseif($worker->id === 1){
    new Crontab('1 * * * * *', function(){
        echo "test3".date('Y-m-d H:i:s')."\n"; # 2
        sleep(5);
    });


    new Crontab('1 * * * * *', function(){
        echo "test4".date('Y-m-d H:i:s')."\n"; #5
    });
}elseif($worker->id === 2){
    new Crontab('1 * * * * *', function(){
        echo "test5".date('Y-m-d H:i:s')."\n"; #3
        sleep(5);
    });


    new Crontab('1 * * * * *', function(){
        echo "test6".date('Y-m-d H:i:s')."\n"; #6
    });
}


难点:
配置 site.php,到 redis 需要手动写代码


 

相关文章:

fastadmin 基本使用配置

fastadmin 版本 1.3.5 thinkphp 版本 5.0.25 配置 cache 为 redis 保存 // ---------------------------------------------------------------------- // | 缓存设置 // ---------------------------------------------------------------------- cache …...

netty 线程组

我们的bossgroup和workgroup都是使用的NioEventLoopGroup。其内部有一个EventExecutor类型的数组用来存储所有的线程组。 NioEventLoopGroup {EventExecutor[] children; }NioEventLoopGroup继承自MultithreadEventExecutorGroup,构造函数不指定线程数默认会根据系…...

Reactor 第十二篇 WebFlux集成PostgreSQL

1 引言 在现代的应用开发中,数据库是存储和管理数据的关键组件。PostgreSQL 是一种强大的开源关系型数据库,而 WebFlux 是 Spring 框架提供的响应式编程模型。本文将介绍如何使用 Reactor 和 WebFlux 集成 PostgreSQL,实现响应式的数据库访问…...

红队打靶:Me and My Girlfriend打靶思路详解(vulnhub)

目录 写在开头 第一步:主机发现和端口扫描 第二步:Web渗透(修改XFF代理) 第三步:数据库手工枚举 第四步:sudo php提权 总结与思考 写在开头 本篇博客在自己的理解之上根据大佬红队笔记的视频进行…...

Mysql高级——索引(2)

常见索引 索引分类 在MySQL数据库,将索引的具体类型主要分为以下几类:主键索引、唯一索引、常规索引、全文索引。 分类含义特点关键字主键索引针对于表中主键创建的索引默认自动创建, 只能有一个PRIMARY唯一索引避免同一个表中某数据列中的值重复可以…...

【史上最硬核分享】Docker+jenkinsPipeline 运行实现 python 自动化(超详细)

一、实现思路 在 Linux 服务器安装 docker创建 jenkins 容器jenkins 中创建 pipeline 项目根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境)运行新的 python 容器,执行 jenkins 从仓库中拉下来的自动化项目执行完成之后删除容器 二、环境准备 Linu…...

leetcode 3. 无重复字符的最长子串

2023.9.15 本题我用的暴力双层for循环 unordered_set 解决的,外循环控制字符起始位置,内循环将字符放入 unordered_set,并查找有无重复的元素。 用了一个全局变量记录最长字串的长度,局部变量count记录当前层循环的最长子串长度…...

doccano 文本标注工具使用

最近在做面向大模型的文本标注工作,涉及到多人协同的问题,因此用到了doccano工具。 这个工具可以使用docker进行安装,安装之后的启动也都比较简单。 关于基础使用(例如管理员登录、新建任务、上传数据集等)&#xff…...

快速排序算法的递归和非递归

基本思路 选择一个基准值,将数组划分三个区域,小于基准值的区域位于左侧,等于基准值的区域位于中间,大于基准值的区域位于右侧。将大于和小于区域继续进行分区,周而复始,不断进行分区和交换,直…...

Maven无法拉取SNAPSHOT依赖的解决办法

背景 自己所在的部门主要是为其他项目组提供基础组件,如果需要使用新特性,其他项目组还会经常引用SNAPSHOT版本的组件进行开发测试。平时自己做测试的时候,因为手里有源码,所以每次都是先执行 mvn install 在本地安装后&#xff…...

day16-面向对象综合练习(上)

1. 设计游戏的目的 锻炼逻辑思维能力利用Java的图形化界面,写一个项目,知道前面学习的知识点在实际开发中的应用场景 2. 游戏的最终效果呈现 Hello,各位同学大家好。今天,我们要写一个非常有意思的小游戏 —《拼图小游戏》 我们…...

在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境

目录 在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境一 Fyne 和 MSYS2简介1.1 Fyne1.2 MSYS2 二 安装 MSYS22.1 下载MSYS22.2 安装2.3 环境变量设置2.4 检测安装环境 三 参考文档 在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发…...

漫谈:C、C++字符串的困局

由于历史的原因,C、C字符串是个很让程序员头疼的东西。 字符串被解读为字符数组,但是又不等价于字符数组,而是带有附加的结束符的字符数组。 结束符‘\0’也是一个字符,但是又不计算在字符串长度里面(strlen&#xff0…...

基于python+selenium的自动批量添加

场景 点击添加”新增“按钮,弹出”新增对话框“,输入各种数据,然后点击”确定“按钮,如此循环。数量多,这样操作累人。 selenium Selenium 是一个用于自动化 Web 浏览器操作的库,可以实现模拟点击、输入…...

gdb监视

怀疑踩内存了,如何利用gdb监视一段内存的值 在实际情况中,如果怀疑一个进程中的变量被踩内存了,但是不知道什么时候会被踩,就可以用下面的方法进行debug。GDB(GNU Debugger)是一个功能强大的调试工具&…...

STM32基础知识点总结

一、基础知识点 1、课程体系介绍 单片机概述arm体系结构STM32开发环境搭建 STM32-GPIO编程-点亮世界的那盏灯 STM32-USART串口应用SPI液晶屏 STM32-中断系统 STM32-时钟系统 STM32-ADC DMA 温湿度传感器-DHT11 2.如何学习单片机课程 多听理论、多理解、有问题及时提问 自己多…...

Python vs C#:首先学习哪种编程语言最好?

进入编码可能很困难。 最艰难的部分? 决定先学什么语言。 当谈到 Python 与 C# 时,可能很难知道在您的决定中要考虑哪些因素。 我们为您提供了有关这些全明星编程语言的所有信息。 什么是 C#? 自 2000 年作为 Microsoft Visual Studio 的一部分开发 C# 以来,它一直是开发人…...

代理IP和Socks5代理:跨界电商与全球爬虫的关键技术

跨界电商在全球化市场中崭露头角,而代理IP和Socks5代理则成为实现全球市场洞察和数据采集的不可或缺的工具。本文将深入探讨这两种代理技术在跨界电商、爬虫技术和出海战略中的关键作用。 引言: 介绍跨界电商的崛起和全球市场的机遇与挑战。引出代理IP…...

CentOS 7 调优之周期性的访问中断

文章目录 背景问题描述原因分析解决方案相关版本 背景 操作系统版本:CentOS Linux release 7.6.1810 (Core) 操作系统镜像安装后,未进行任何调整。正常部署应用,应用在 CentOS 7.9 未出现过此类现象。 问题描述 问题描述:负载教…...

SpringBoot表现层数据一致性

1.定义Restful类 说明:使用Data注解是Lombok库提供的一个注解,用于自动生成类的getter、setter、equals、hashcode和toString方法。 package com.forever.controller.utils;import lombok.Data;Data public class Restful {private Boolean flag;//dat…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言:多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...