- 博客(50)
- 资源 (13)
- 收藏
- 关注
原创 mongodb 按条件进行备份和恢复
--db ad_db 指定备份的数据库--collection websocket_client 指定备份发集合--query $whereday 这里指定筛选数据的条件是 按天--out $dir 指定备份文件输出的目录
2024-10-31 14:58:56
635
原创 进程守护SuperVisord内部的进程定时监测并重启
设置一个每分钟任务监测9503的端口链接数,输出链接数,并在链接数为0的情况下重启wensocket进程。
2024-10-31 14:35:14
508
原创 进程守护SuperVisord 默认打开文件数问题
我们使用snap安装mqtt2.0 如果你没有安装过 要先yum安装snap 。yum install epel-releaseyum install snapdsystemctl enable --now snapd.socketln -s /var/lib/snapd/snap /snap完成后要重启服务器后重新登陆安装命令 snap install mosquitto正常会返回mosquitto 1.6.10 from Roger Light (ralight) in...
2024-10-31 14:26:56
172
原创 mongodb指定引擎并设置内存使用大小
WiredTiger 存储引擎:默认的存储引擎为 WiredTiger 存储引擎,非常适合大多数工作负载,建议用于新部署。WiredTiger 提供文档级并发模型、检查点和数据压缩等功能。In-Memory 存储引擎:In-Memory 存储引擎在 MongoDB Enterprise 中可用。它不是将文档存储在磁盘上,而是将它们保留在内存中以获得更可预测的数据延迟。虽然默认引擎就是wiredTiger 但是非常有必要知道应该怎么设置引擎。
2024-10-31 14:22:03
507
原创 监测mongodb服务并启动
对与这种情况大家要清楚mongdo的链接类似于mysql的长连接。也就是只要有一次连接,这个连接就会保持很长一段时间,除非是你的mongodb是很长时间没有客户端使用,才会触发这种极端情况。这个每分钟检查的脚本只能属于临时应急措施。也许有同学会担心,服务没有出问题,就是没有客户端来连接,这种情况。只能通过面板的定时任务每分钟去检查端口27017的链接数并输出,宝塔面板安装的mongodb数据库,但是缺少一个进程守护工具。如果链接数为了0,就重启mongodb服务。
2024-10-31 14:15:24
572
原创 离职必备技能 finalshell 导出快捷命令
但是你想在访达中找到这个路径不可能的,在ITerem2中你也无法访问这个路径,su到root账号也不行。finalshell 能存储平时的快捷操作,但是又遇到离职,这些个人工作经验肯定不能舍弃,必须要想办法保存。我的系统MacOs系统 文件的路径 /Users/用户/Library/FinalShell。然后直接访问 /Users/用户/Library/FinalShell 是不是就看到。config.json文件里面就是一个很大的json文件。说这个答案肯定不会错,但你也找不到文件。
2024-10-31 10:53:47
657
原创 Ngx+Lua+Redis 快速存储POST数据
系统几万台设备有windows有安卓还有linux系统,每个设备三分钟就会向服务器post设备的硬件信息,数据格式json,后台管理界面只需要最新的数据,不需要历史数据,业务逻辑非常简单,PHP代码就几行,已经优化到极致了,但是架不住频率太高了。服务器负载就被这个的简单逻辑给耗尽。做法也很简单就是不用php-fpm,nginx接收到数据,直接把post数据存储到redis里面,供管理后台直接使用。我的设备唯id是,通过header头的”Authorization“ 传递的,你需要结合你你的实际代码。
2024-10-08 17:47:42
562
原创 Ngx+Lua+Redis 实时IP黑名单系统
要想速度快还的在nginx层实现阻塞。php管理后台把黑名单ip写入到redis,nginx层使用lua脚本去redis查询ip是否在黑名单里,实现实时控制。
2024-10-08 17:22:56
789
原创 MongoDB的UTCDateTime如何使用
MongoDB的UTCDateTime存储的时间是0时区的UTC时间,MongoDB这个数据库是没有时区设置的。建议存储的时候就把时区加上,例如东八区(存储的时间都统一加上8*3600秒),这样Navicat之类的客户端查看数据的时候时间就正常了,PHP程序使用的时候也是直接使用不考虑时区转换。使用MongoDB的UTCDateTime类来存储当前的UTC日期和时间。如果你想把UTCDateTime对象格式化为可读的字符串需要先把UTCDateTime对象转换成PHP的DateTime类。
2024-04-22 18:26:53
444
原创 nginx网址重写后post数据如何获取
post的时候,参数是存放在message body中传递的,对于内部的url调转,因为是相同的一次请求,所以message body(request body)没变,所以post数据不会丢失。而对于外部跳转,实际上是一次302,即用户在请求了一次,所以第二次就不会post第一次的数据了
2023-02-14 20:53:20
1045
原创 mysql 按日期分表用到的sql语句
2 创建表,根据一个母表创建一个 按月的表,并且要带上索引与外键。如果字段不一致 或 表不在一个库里面。3 按前缀查询所有的表。
2023-02-07 12:07:06
505
原创 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
2022
转载 RabbitMQ+PHP7+amqplib插件实现消息队列
如果你有服务器权限 最好使用php扩展,这样效率高。参考另一篇文章 《RabbitMQ+PHP7扩展模式实现消息队列》https://blog.youkuaiyun.com/hangbobo/article/details/123571200https://blog.youkuaiyun.com/hangbobo/article/details/123571200如果没有服务器权限只能退而求其次使用插件了原文地址 使用php-amqplib连接rabbitMQ 学习笔记及总结 - snailZED - 博客园在.
2022-03-18 14:27:14
337
原创 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
343
原创 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
508
原创 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
1269
原创 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
1675
原创 Hyperf安装完成后的基本设置
Centos 安装 Swoole框架Hyperf过程_菠菜的专栏-优快云博客前文说了安装过程,现在说说一些基本配置。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
3071
原创 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
317
原创 阿里云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
998
原创 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
359
原创 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
495
原创 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
609
原创 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
344
原创 宝塔面板 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
687
原创 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
759
原创 DataTable的实践2 服务端实现分页与搜索
DataTable 服务器做数据分页,并按搜索条件筛选数据,前端通过ajax和服务端交互数据,每次分页或搜索,都是ajax向服务器请求数据后展示。这种方式适合表数据量持续增长情况.先上前端代码和前端分页相比这里只需要填写表头。下面JS代码function get_lang(){ return { "sProcessing": "处理中...", "sLengthMenu": "每页 _MENU_ 项", "sZeroRecords".
2021-04-02 20:11:54
637
1
原创 DataTable的实践1 前端分页并实现搜索
最近的项目一直在使用DataTable,走了很多弯路,也踩了很多坑,总结经验,方便后来人。官方网址https://datatables.net/中文资源http://datatables.club/DataTable 根据分页方式有两种,第一种方式,从服务器一次性获取全部数据,然后前端DataTable来组织分页和搜索。访问分页和搜索都不再和服务器交互数据,直至当前页面被刷新或重新打开。第二种方式,服务器做数据分页,并按搜索条件筛选数据,前端通过ajax和服务端交互数据,每次分页或搜...
2021-04-02 18:24:13
864
原创 页面输出JSON的格式化数据
系统有一个日志记录用户的访问传参和返回结果像返回结果 是一个json字符,如果不做格式化处理看起来真的很费力github上的项目https://github.com/summerstyle/jsonTreeViewer下载文件后打开html功能很多,很多都是用不到的,先精简一下,去掉多余的功能,代码放到后台很尴尬,js有冲突。无奈只能iframe嵌套页面。嵌套的页面代码很简单<!DOCTYPE html><html><head> .
2021-04-02 17:29:23
658
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
986
原创 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
122
原创 制作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
184
原创 宝塔面板 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
8955
原创 GoLand 2020.3 安装过程 设置中文 设置国内软件源 笔记
官网下载地址https://www.jetbrains.com/go/下载最新版 全部默认安装第一进去选择30天免费试用就可以1设置中文截图都是后补的,英文界面请自己对照位置插件中搜索 chinese 安装第二个 中文语言包 就可以了...
2020-12-11 07:17:12
3512
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
3313
原创 一个简单的唯一令牌实现,彻底防止恶意并发多领奖励的行为。
事情的起因mysql的四种事务的隔离级别,开发时候mysql默认可重复读(repeatable-read)所以使用事务行锁,锁定一行记录,可以实现互斥,并发操作这一行记录的请求最终按顺序排队,避免常见的恶意并发多领奖励。但是合作方的机房DBA,为了可能存现的小概率事件,假如行锁释放出问题,会导致数据库卡死。所以把事务隔离级别调整到,读未提交(read-uncommitted)。这样确实可以避免互斥,大幅度减少数据库卡死的可能性,但是问题也跟着来了。恶意并发多领奖励。场景:支付一个订单,发起10个并
2020-11-23 10:16:47
532
原创 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
3623
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关注的人