- 博客(41)
- 资源 (13)
- 收藏
- 关注
原创 MongoDB的UTCDateTime如何使用
MongoDB的UTCDateTime存储的时间是0时区的UTC时间,MongoDB这个数据库是没有时区设置的。建议存储的时候就把时区加上,例如东八区(存储的时间都统一加上8*3600秒),这样Navicat之类的客户端查看数据的时候时间就正常了,PHP程序使用的时候也是直接使用不考虑时区转换。使用MongoDB的UTCDateTime类来存储当前的UTC日期和时间。如果你想把UTCDateTime对象格式化为可读的字符串需要先把UTCDateTime对象转换成PHP的DateTime类。
2024-04-22 18:26:53
330
原创 nginx网址重写后post数据如何获取
post的时候,参数是存放在message body中传递的,对于内部的url调转,因为是相同的一次请求,所以message body(request body)没变,所以post数据不会丢失。而对于外部跳转,实际上是一次302,即用户在请求了一次,所以第二次就不会post第一次的数据了
2023-02-14 20:53:20
927
原创 mysql 按日期分表用到的sql语句
2 创建表,根据一个母表创建一个 按月的表,并且要带上索引与外键。如果字段不一致 或 表不在一个库里面。3 按前缀查询所有的表。
2023-02-07 12:07:06
429
原创 Redis Stream +php7 实现消息队列
Redis Stream 是从5.0才有的新数据结构,基础知识参考网址Redis Stream | 菜鸟教程Redis Stream Redis Stream 是 Redis 5.0 版本新增加的数据结构。 Redis Stream 主要用于消息队列(MQ,Message Queue),Redis 本身是有一个 Redis 发布订阅 (pub/sub) 来实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis 宕机等,消息就会被丢弃。 简单来说发布订阅 (pub/sub) 可.
2022-03-25 20:56:38
1861
转载 RabbitMQ+PHP7+amqplib插件实现消息队列
如果你有服务器权限 最好使用php扩展,这样效率高。参考另一篇文章 《RabbitMQ+PHP7扩展模式实现消息队列》https://blog.csdn.net/hangbobo/article/details/123571200https://blog.csdn.net/hangbobo/article/details/123571200如果没有服务器权限只能退而求其次使用插件了原文地址 使用php-amqplib连接rabbitMQ 学习笔记及总结 - snailZED - 博客园在.
2022-03-18 14:27:14
288
原创 RabbitMQ+PHP7扩展模式实现消息队列
windows下 PHP7 安装 扩展amqp先搞清楚自己电脑上php的线程安全phpinfo 下 看Thread Safe 值接下来下载dll文件 地址http://pecl.php.net/package/amqpphp7.2以上的建议使用1.10.2版本PECL :: Package :: amqp 1.10.2 for Windowshttps://pecl.php.net/package/amqp/1.10.2/windows注意php版本 ,X86 和X64 根据自己情况 , ...
2022-03-18 14:19:26
281
原创 win10 右键增加《在此处打开命令窗口》命令
在Windows下如果要在一个目录下执行cmd命令,正常操作需要先打开cmd,如果非系统盘还需要跳转盘符,然后cd 到相应目录,那是一个麻烦呀。其实可以再右键增加一个《在此处打开命令窗口》的命令。Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Directory\shell\OpenCmdHere]@="在此处打开命令提示符""Icon"="cmd.exe"[HKEY_CLASSES_ROOT\Directory\shell\O
2022-01-25 09:56:20
467
原创 php7 mongodb 使用(五)$lookup 多表关联
管道操作$lookup 可以把两个表进行关联查询,其效果等于mysql的INNER JOIN 左右两个表必须同时存在的数据。$lookup有两种方式第一种,只能使用一个固定的字段关联表,建议这个字段最好是from表的主键,否则效率会很差。$pipeline[]=['$lookup'=>['from'=>'user_status','localField'=>'user_id','foreignField'=>'_id','as'=>'info']];第二种...
2022-01-17 12:04:56
1214
原创 mysql 存储过程同步数据
接到需求 正式环境数据库db01和测试环境的数据库db02中所有表字段完全一样但是数据行不一致,要求把db01中的数据覆盖到db02,如果数据表的主键一致就db01覆盖db02,不一致的全部保留。实现方法把db01中所有表中数据的主键取出,然后在db02的表中先删除主键对应的数据,然后插入db01的数据。简单的方法实现,但是到了代码层缺不好实现。1表很多,2主键不都是id。3表中的数据行很多。用php获取所有表和对应的主键SELECT a.TABLE_NAME,b.column_name .
2022-01-05 17:59:22
1515
原创 Hyperf安装完成后的基本设置
Centos 安装 Swoole框架Hyperf过程_菠菜的专栏-CSDN博客前文说了安装过程,现在说说一些基本配置。1,启动界面输出了太多无用信息,需要精简config/config.phpreturn [ 'app_name' => env('APP_NAME', 'skeleton'), 'app_env' => env('APP_ENV', 'dev'), 'scan_cacheable' => env('SCAN_CACHEABLE', f.
2021-11-12 09:48:36
2947
原创 php7 mongodb 使用(四)集合的创建删除改名操作
使用的mongodb操作类 请参考以前的文章php7 mongodb 使用(二)原生驱动 增删改查和统计首先 查询集合$m_model= new MongoClass();$cmd=['listCollections' => 1,'nameOnly'=>true];$res=$m_model->query('',$cmd,[],'command');返回当前库下的所有集合。如果是只想获得test前缀的集合$cmd=['listCollections' => 1,'.
2021-10-23 19:25:05
293
原创 阿里云SLS日志服务php的SDK写入缓存问题
最近的项目使用了 阿里云的日志服务,感觉挺好用,SDK接入照着官方sdk里面的DEMO,简单顺利接入。核心代码就个函数。private function getObj($topic='TestTopic'){ //通过使用相同参数调用工厂方法来创建相同的记录器实例 return \Aliyun_Log_LoggerFactory::getLogger(self::$client, $this->project, $this->logstore,env(..
2021-08-17 21:52:33
923
原创 php strtotime函数年月操作异常
strtotime可以很方便的计算 1天前 1周前 1月前 1年前的时间戳。但是月和年的周期是不固定的,使用这个方法会出现异常。例如 计算3月31日的一个月前的时间结果会怎么样echo date("Y-m-d", strtotime("-1 month", strtotime("2017-03-31")));//输出2017-03-03echo date("Y-m-d", strtotime("+1 month", strtotime("2017-08-31")));//输出2017-1.
2021-08-11 22:03:46
316
原创 php7 mongodb 使用(三)原生驱动下聚合操作与管道操作
mongodb 3.2版本才有聚合操作,如果你是用的版本低于3.2,请先升级版本。代码基于php7原生驱动,php5或者mongodb library 类库的,请出门从外面带上门,不送。使用的php操作类 请先查看本文的上一章节 《php7 mongodb 使用(二)原生驱动 增删改查和统计》在上一章节中 我们介绍Command 命令时候使用了一个例子统计一个集合下的数据量 类似mysql 的 count$cmd=["count" => $table,"query" =>$fi...
2021-04-19 22:30:17
458
原创 php7 mongodb 使用(二)原生驱动 增删改查和统计
php7安装mongodb的扩展。宝塔面板环境下php7.3默认安装了pecl扩展包, 安装的php7.4版本是默认不带pecl扩展包的。需要手动安装php版本 < 7的时候yum install php-pear 就可以但是7.4 版本的不行,$ wget http://pear.php.net/go-pear.phar$ php go-pear.phar安排完成后pecl install mongodb 安装扩展最后在php.ini 中添加 extension=mon...
2021-04-17 19:48:02
546
原创 php7 mongodb 使用(一) 识别三种类型
最近的工作和mongodb相关,恶补了各种姿势,踩了了很多坑。一,分清楚三种mongodb1,php5时代的mongodb,标志特征MongoClient()对象。示例$m = new MongoClient(); // 连接默认主机和端口为:mongodb://localhost:27017$db = $m->test; // 获取名称为 "test" 的集合$db->selectdb('test'); //查询集合更多操作 参考网址https://www....
2021-04-17 17:52:12
311
原创 宝塔面板 mongodb 重置密码
使用宝塔面板的mongodb 结果忘记了数据库的密码只能走一遍重置密码的流程1 首先修改authorization: disabled 关闭密码验证, 同时记得把端口也设置为27017, 并重启服务2 ssh操作cd /www/server/mongodb/binmongo> show dbs列出所有db> use mydb> show users 列出所有账户> db.changeUserPassword('myuser','123456') 设...
2021-04-17 14:23:44
610
原创 DataTable的实践3 搜索参数
上一章节我们演示了服务端分页 AJAX参数传递参数,搜索是参数的的一部分,今天我们来详细展示搜索参数先上html代码<div id="sousuo" class="card-header"> <div class="form-group row"> <div class="col-sm-2"> <div class="input-group"> <div class="i.
2021-04-02 20:45:09
654
原创 DataTable的实践2 服务端实现分页与搜索
DataTable 服务器做数据分页,并按搜索条件筛选数据,前端通过ajax和服务端交互数据,每次分页或搜索,都是ajax向服务器请求数据后展示。这种方式适合表数据量持续增长情况.先上前端代码和前端分页相比这里只需要填写表头。下面JS代码function get_lang(){ return { "sProcessing": "处理中...", "sLengthMenu": "每页 _MENU_ 项", "sZeroRecords".
2021-04-02 20:11:54
571
1
原创 DataTable的实践1 前端分页并实现搜索
最近的项目一直在使用DataTable,走了很多弯路,也踩了很多坑,总结经验,方便后来人。官方网址https://datatables.net/中文资源http://datatables.club/DataTable 根据分页方式有两种,第一种方式,从服务器一次性获取全部数据,然后前端DataTable来组织分页和搜索。访问分页和搜索都不再和服务器交互数据,直至当前页面被刷新或重新打开。第二种方式,服务器做数据分页,并按搜索条件筛选数据,前端通过ajax和服务端交互数据,每次分页或搜...
2021-04-02 18:24:13
795
原创 页面输出JSON的格式化数据
系统有一个日志记录用户的访问传参和返回结果像返回结果 是一个json字符,如果不做格式化处理看起来真的很费力github上的项目https://github.com/summerstyle/jsonTreeViewer下载文件后打开html功能很多,很多都是用不到的,先精简一下,去掉多余的功能,代码放到后台很尴尬,js有冲突。无奈只能iframe嵌套页面。嵌套的页面代码很简单<!DOCTYPE html><html><head> .
2021-04-02 17:29:23
581
1
原创 PHPExcel 升级到 PhpSpreadsheet
项目原本php7.2 集成PHPExcel 插件 使用没任何问题但是现在php7.2升级到php7.4。 composer update 的时候总是提示PHPExcel不兼容php7.4最初解决方案是 把vendor/phpoffice 下类似 $array{0} 改成$array[0],改了多处代码后,execl导入导出功能在7.4下勉强能用。但是每次部署新服务器总是这个操作感觉太low,最近时间充裕花了半天时间升级到PhpSpreadsheet,彻底解决埋了这个坑。1,c...
2021-03-20 12:06:05
898
原创 Centos 更换yum源
1下载源网易yum源:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo或者阿里云yum源:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repowget -O /etc/yum.repos.d/CentOS-Base.repo htt.
2021-03-13 19:48:14
99
原创 制作mysql版的ip数据库 代码基于PHP
1,ip数据数来源 纯真点击右下的解压,获得ip数据的txt版本。我们就是要把这个txt文本里的数据逐行导入到数据库2,创建数据表CREATE TABLE `ip_data` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `ipstart` int(10) unsigned NOT NULL COMMENT 'ip开始', `ipend` int(10) unsigned NOT NULL COMMENT 'ip结束', `r
2021-02-05 11:40:55
161
原创 宝塔面板 mongodb设置账号,密码,数据库,并配置远程连接
宝塔面板安装mongo4.0后需要设置账号密码可数据库才能使用安装后authorization: disabled 默认配置时才可以使用这个功能,如果没有admin 需要先手动创建一个admin库,然后在创建一个yourdatabaseSSH终端1、进入mongodb安装目录,下面是宝塔面板的默认目录cd /www/server/mongodb/bin2、进入mongodb环境 并切换到admin数据库mongouse admin3、看看当前有哪些用户...
2021-01-08 20:30:33
8132
原创 GoLand 2020.3 安装过程 设置中文 设置国内软件源 笔记
官网下载地址https://www.jetbrains.com/go/下载最新版 全部默认安装第一进去选择30天免费试用就可以1设置中文截图都是后补的,英文界面请自己对照位置插件中搜索 chinese 安装第二个 中文语言包 就可以了...
2020-12-11 07:17:12
3091
4
原创 Visual Studio Code 设置中文,国内软件源,go插件
官方下载地址https://code.visualstudio.com/下载最新版,默认安装就可以1设置中文ctrl+shift+x 进入安装扩展的界面 搜索 Chinese选择 Chinese (Simplified) Language Pack for Visual Studio Code 这个后 右侧窗口 点击install 就可以了2安装国内源首先开启 Go 的MODULE支持 在DOS中输入 SETX GO111MODULE on Mac 为expo...
2020-12-11 07:08:37
2783
原创 一个简单的唯一令牌实现,彻底防止恶意并发多领奖励的行为。
事情的起因mysql的四种事务的隔离级别,开发时候mysql默认可重复读(repeatable-read)所以使用事务行锁,锁定一行记录,可以实现互斥,并发操作这一行记录的请求最终按顺序排队,避免常见的恶意并发多领奖励。但是合作方的机房DBA,为了可能存现的小概率事件,假如行锁释放出问题,会导致数据库卡死。所以把事务隔离级别调整到,读未提交(read-uncommitted)。这样确实可以避免互斥,大幅度减少数据库卡死的可能性,但是问题也跟着来了。恶意并发多领奖励。场景:支付一个订单,发起10个并
2020-11-23 10:16:47
487
原创 Hyperf如何使用redis
1程序根目录下 .env文件配置redis服务器参数REDIS_HOST=127.0.0.1REDIS_AUTH=(null)REDIS_PORT=6379REDIS_DB=12Controller文件中<?phpdeclare(strict_types=1);/** * This file is part of Hyperf. * * @link https://www.hyperf.io * @document https://hyperf.wi...
2020-09-30 09:34:49
3500
转载 hyperf 启动、重启、停止、文件变化监听命令包
鉴于 hyperf1.1 + 还没有重启等命令,本地调试比较麻烦,所以使用了 FanchangWang 写的代码封装成了一个包,方便使用。该扩展包完全使用了 FanchangWang 写的代码,非常感谢 FanchangWang,FanchangWang 的 github 地址我是在 hyperf1.2 版本的 pr 查看到的这份代码,应该已经被包含 hyperf1.2 的命令内了,具体请看该 pr 地址拉取包composer require phper666/hyperf-server-com
2020-09-22 19:25:48
6717
原创 Centos 安装 Swoole框架Hyperf过程
这框架是Swoole成员开发的,据说比Swoole性能高。我的系统Centos 7, 宝塔面板, php7.2 已经安装 redis扩展和Swoole扩展。 1 先升级下composer /usr/bin/composer self-updatecomposer安装,任意目录即可运行,不依赖于apache或nginx等服务器。2切换阿里云composer镜像composer config -g repo.packagist composer https://packa...
2020-09-22 17:36:47
1311
1
原创 Redis 交换两个key的值,保证原子性,使用lua脚本实现
Redis 交换两个key的值,保证原子性,管道事务都不符合要求。只能使用lua脚本。简单代码,真实会着不难,难者不会。define('API_PATH', str_replace('\\', '/',dirname(__FILE__)) . '/');require API_PATH.'inc/cls_redis.php'; //引入cls_redis文件$rd_obj = new \redis\cls_redis(3); //初始redis对象 并进入分片$redis=$rd_o
2020-09-17 19:27:21
641
原创 thinkphp5中的cache缓存配置redis实例
application/config.php 中 cache项的设置 'cache' => [ // 驱动方式 'type' => 'complex', // 缓存前缀 'prefix' => 'pre:', // 默认使用的缓存 'default' => [ // 驱动方式 'type' => 'File', // 缓存保存目录 'path' ..
2020-09-17 18:43:33
1307
原创 阿里云 OSS NAS挂载到linux系统目录
官方说明文档参考https://help.aliyun.com/document_detail/32196.htmlhttps://help.aliyun.com/document_detail/153892.html快速安装下载安装包。以下载CentOS 7.0 (x64)版本为例:wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpmCentOS 6.5及以上系统版本的..
2020-09-17 18:30:01
1077
原创 MQTT安装和php使用mosquitto的实例
安装的为mosquitto-1.6.7cd /usr/local/# 下载源代码包wgethttp://mosquitto.org/files/source/mosquitto-1.6.7.tar.gz# 解压tar zxfv mosquitto-1.6.7.tar.gzmv mosquitto-1.6.7 mosquitto# 进入目录cd mosquitto# 编译安装make &&make install可以看到最后几行,说明在/etc/下创...
2020-09-17 17:35:26
1586
原创 对恶意的并发访问进行强制排队按顺序执行
<?phpnamespace lock;class cls_lock{ public $redis = null; public $time = 2; //逻辑锁最长存在时间2秒 public function __construct() { if($this->redis==null){ $this->set_redis(); } } private function set_redis($n=2){ require API_PAT.
2020-09-17 16:24:21
245
原创 一个改进redis操作类,支持多维数组
<?phpnamespace redis;use \Redis as RedisBase;class cls_redis{ public static $redis = null; private static $timeout = 600; /** * 初始化Redis连接 * 所有配置参数在实例化Redis类时加入参数即可 */ public function __construct($db=0) { .
2020-09-16 19:25:30
275
转载 PHP操作Redis的命令大全
//连接本地的 Redis 服务<?php$redis =newRedis();$redis->connect('127.0.0.1',6379);$redis->select(2); //进入2号分片$redis->set("name","Connection to server sucessfully");//设置 redis 字符串数据echo $redis->get("name");// 获取存储的数据并输出?>五种数据类型常用操作/*
2020-09-16 15:01:58
796
1
navicat 16 premium 中文语言包
2022-06-09
appstackadmin
2021-01-09
phpRedisAdmin-1.13.1 包含composer依赖
2020-11-28
phpRedisAdmin-1.13.1
2020-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人