- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 Redis 哨兵模式 搭建
假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover(故障切换)过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作。当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。
2025-04-12 13:00:48
456
原创 PHP 用 workman 即时通讯,做个简版QQ
workerman的目标是让PHP开发者更容易的开发出基于socket的高性能的应用服务,而不用去了解PHP socket以及PHP多进程细节。workerman是一个高性能的PHP socket 服务器框架,workerman基于PHP多进程以及libevent事件轮询库,PHP开发者只要实现一两个接口,便可以开发出自己的网络应用,例如Rpc服务、聊天室服务器、手机游戏服务器等。WorkerMan提供了HTTP协议、WebSocket协议以及非常简单的Text文本协议、可用于二进制传输的frame协议。
2025-04-11 10:28:35
359
原创 PHP 由0开始学习 正则表达式
以这个表达式为例:a.*b,它将会匹配最长的以a开始,以b结束的字符串。注意使用”[]”与”()”的区别,在于”[]”只能匹配单个字符,而”()”可以匹配任意长度的字符串。因为使用了^和$,所以输入的整个字符串都要用来和\d{5,12}来匹配,也就是说整个输入必须是5到12个数字,因此如果输入的QQ号能匹配这个正则表达式的话,那就符合要求了。这里的{5,12}和前面介绍过的{2}是类似的,只不过{2}匹配只能不多不少重复2次,{5,12}则是重复的次数不能少于5次,不能多于12次,否则都不匹配。
2025-04-10 11:05:15
687
原创 PHP 阿里云oss 使用指南
再程序里调用 ,比如上传文章图片场景 ,上传好后把 $result['oss-request-url'] oss的访问路径 ,保存到数据库中。'KeySecret' => 'KaqD1uAxxxxxxxxxxxxx', //您的Access Key Secret。'KeyId' => 'LTAI5tAhDgMxxxxxxx', //您的Access Key ID。要使用阿里云 oss sdk ,请先到阿里云下载 或用 copmposer 安装。2. php sdk使用。
2025-04-09 09:41:38
241
原创 Php laravel 留言板 curd 实战
首先我们用composer创建项目 , composer会根据当前的php版本 帮我们选择支持的最高版本laravel新版本比较激进 ,需要最低 php7 支持项目配置主要在根目录下的 .env 文件中主要是数据库配置 和 redis的配置注意 config / app.php 文件 ,改时区,一般默认是PRC。
2025-04-09 09:32:38
624
原创 微信小程序之微信授权登录
unionId : 如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。解密SDK下载地址 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html。//取出json里对应的值。//请求服务器,解密获取openId和unionId。
2025-04-08 14:08:08
173
原创 nginx实现负载均衡与例子详解
随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance)。这样就能保护 47.106.98.99 的真实ip 不暴露 , 真正暴露的是这个堡垒机的ip。在我们10次的刷新访问中,有3次是跳转到90这个服务器中,基本符合权重的算法。2. 这里用了权重的算法。
2025-04-08 11:07:29
708
原创 Linux下创建svn库 和 svn安装与操作
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。-rwxr-xr-x 1 root root 2243 Feb 12 2014 svnserve ,已经安装到系统服务了,安装成功。svn://192.168.133.130/www/svndata/website svn的地址。3.3 查看日志 显示这个文件的所有修改记录,及其版本号的变化。#修改的文件前面不能有空格,否则启动svn server出错。
2025-04-07 22:26:39
502
原创 Mysql忘记密码操作与mysql的远程登陆授权
首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi。
2025-04-05 23:12:44
212
原创 Mysql explain中列的解析
ref:这个连接类型只有在查询使用了不是惟一或主键的键或者是这些类型的部分(比如,利用最左边前缀)时发生。Using index: 列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发生在对表的全部的请求列都是同一个索引的部分的时候。eq_ref:在连接中,MYSQL在查询时,从前面的表中,对每一个记录的联合都从表中读取一个记录,它在查询使用了索引为主键或惟一键的全部时使用。:查询可以利用的索引,如果没有任何索引可以使用,就会显示成null,这项对内容的优化时索引的调整非常重要。
2025-04-05 23:04:52
373
原创 Mysql慢查询设置 和 建立索引
很明显,这里情况是比较糟糕的,没有使用到任何索引,没有可以使用的索引,而且基本上是全表扫描 rows=245056,差不多整个表都扫描了一遍,如果数据量大了,真是不敢想象啊。现在情况已经比较好了,使用了刚刚建立的索引,而且只扫描了104行 ,type是ref ,不是最糟糕的all ,速度也快了不少。但是很明显这个 还用到一个user_id的字段 ,你一定会想到再帮user_id再建一个索引,可以,但是这不是一个最佳的方案。索引创建成功了,我们再来explain一下。修改后重启动mysql。
2025-04-05 23:03:23
309
原创 lamp 单独编译 mysql的pdo模块进去
使用 vi 打开你机器的 php.ini 文件,添加一段代码“extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/pdo_mysql.so”,加载 pdo_mysql.so 文件。--with-php-config=/usr/local/php/bin/php-config 指定安装 PHP 的时候的配置。--with-pdo-MySQL=/usr/local/mysql/ 指定 MySQL 数据库的安装目录位置。
2025-04-03 16:13:46
411
原创 nginx的限流操作 和 压力测试
此时,我们就可以在Nginx上进行设置,对访问的IP地址和并发数进行相应的限制。至于这个 rate=2r/s ,这里的2 到底设置成多少合适,既不性能过剩又不会压力太大 ,我认为设置服务器的Qps 是可以的。上面这段代码 表示设置了 每秒允许 2个请求 ,突发 4个请求 ,没有延迟 ,我们用ab工具测试一下。上面我用ab工具 发出50个请求 ,可以看到有44个失败了,只有6个是成功了 ,证实限流设置成功了。如果不限流,黑客的扫描工具将会 更容易派上用场。2.1 首先来介绍来2条主要的代码。
2025-04-03 16:06:25
366
原创 javascript的同步代码和异步代码
随着互联网的发展,JavaScript作为前端开发的主要语言,也不断地发展和完善。在JavaScript中,同步代码和异步代码是两个非常重要的概念,也是开发过程中需要了解的基础知识。本文将对JavaScript中的同步代码和异步代码进行详细介绍,并分析它们在开发中的应用。
2025-04-02 10:48:29
275
原创 linux基本命令(4)操作文件常用的几个命令--mv , cp , rm
t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;-b :若需覆盖文件,则覆盖前先行备份。
2025-04-02 10:31:00
296
原创 linux基本命令(3)--网络命令netstat 和iptables用法
因为DROP虽然单方面的中断了连接,但是并不返回任何拒绝信息,因此连接客户端将被动的等到tcp session超时才能判断连接是否成功,这样早企业内部网络中会有一些问题,例如某些客户端程序或应用需要IDENT协议支持(TCP Port 113, RFC 1413),如果防火墙未经通知的应用了DROP规则的话,所有的同类连接都会失败,并且由于超时时间,将导致难以判断是。这种情况只能在非常少的情况见到。State显示是LISTENING时表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。
2025-04-01 09:56:39
704
原创 PHP 开发API接口签名验证
所谓man-in-the-middle攻击简单讲就是指恶意的黑客可以在客户端和服务器端的明文通信通道上做手 脚,黑客可以监听通信内容,偷取机密信息,甚至可以篡改通信内容,而通过加密后的通信内容理论上是无法被破译的。在仅适用短信登录做手机端app时,可以设置secret的过期时间,短信登录后,保存appid(userid)与密钥secret,每当用户打开APP时,先联网请求登录是否过期,过期重新短信登录获取新的secret。可以看到这个方法,需要传入必要的参数和appsecret ,从而生成sign。
2025-03-31 10:12:28
922
原创 linux基本命令(2)--进程命令PS
在Linux下ps命令是用于查看系统上运行的进程的最基本的命令之一。它提供了当前进程的同时,如用户ID,CPU使用率,内存使用率,命令名称等,它不显示实时数据,如top或htop命令的详细信息。当有一种情况,我们需要像上面第四点中提到的通过CPU和内存的使用率来筛选进程,并且我们希望结果能够每秒刷新一次。查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照。如果你想不断更新查看的这个状态,可以使用top命令。默认的结果集是未排好序的。命令会显示你系统当前的进程状态,但是这个结果是静态的。
2025-03-31 09:50:14
352
原创 linux基本命令(1)--linux下的打包命令 -- tar 和gzip
tar 是用tar命令 打包后的后缀 一般是 tar -cvf test.tar test.txt (仅打包,不压缩)tar.gz 就是在上面命令的基础上再加gzip压缩 一般用得是 tar -zcvf test.tar.gz (打包和压缩)使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。/tmp/etc.tar.gz 就是我们打包后的目标位置 以及 打包后的文件名。所以说tar本身并没有压缩的功能 只有归档,加了z参数就能使用gzip进行压缩。
2025-03-29 22:26:31
538
原创 关于 websocket协议的理解
当 王多鱼 发消息给 周杰伦 , 服务器onMessage收到消息。通过handle_message 这个方法转发到所有客户端。简单实现了聊天室的功能 , 浏览器和服务端 建立了持久性连接。客户端收到消息 ,调用 onmessage 把消息显示在页面上。3.1 客户端例子 (浏览器 javascript)WebSocket与HTTP对比图。3.2 服务端例子 (php)这里开了2个浏览器测试。
2025-03-29 22:18:28
347
原创 复习一下冒泡排序算法
if($arr1[$j]['timestamp'] < $arr1[$j + 1]['timestamp']) { //项目中是二维数组。第五趟: 比较1次 把 最五大的数12 排到倒数第五,就是上面数组的第二 { * * } * * * *第三趟: 比较3次 把 最三大的数25 排到倒数第三 { * * * * } * *第四趟: 比较2次 把 最四大的数15 排到倒数第四 { * * * } * * *echo "<br>排序前:" . implode(', ', $arr1);
2025-03-28 16:34:09
201
原创 Git项目要改变仓库地址
去掉原仓库git地址和清除原项目的git版本信息的方法场景需求:如果是使用自己以前的项目、或者拉取了别人的项目到自己本地。想在此基础上重新开发、初始化项目的话,最好先删掉以前的git信息。因为如果不删除的话:1.看着不舒服。根本不需要保留原来的版本信息。2.我们就无法推送到我们的新仓库去。
2025-03-28 16:24:51
304
原创 php调用deepseek接口api并流式输出
流式输出有几个关键点1.报文stream为true2.curl 开启 CURLOPT_RETURNTRANSFER,使用CURLOPT_WRITEFUNCTION处理返回数据。
2025-03-28 00:09:24
473
原创 整理一些php7 新特性
上面输出 string(3) "abc"第2行相当于 如果两侧的值相等,则返回0如果左侧的值更大,则返回1如果右边的值更大,则返回-1上面输出: 0 1-1在PHP 7中,函数的返回类型可以通过使用:后跟类型名称来声明。可用的类型包括int、float、string、bool以及类名、接口名和数组类型。如果函数可以返回多种类型,可以使用mixed来指代任何类型。4.php7可以define定义常量数组
2025-03-25 11:25:31
189
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人