自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ordmeng的博客

相信努力存在的意义,相信努力的人不一定是跑的最快的,但一定是走的最远的.

  • 博客(28)
  • 收藏
  • 关注

原创 MySQL事务隔离级别

提到事务,我们会想什么是事务?事务其实是一组sql的原子性操作,要么全部成功,要么全不成功!!!事务有四种特性ACID(原子性、一致性、隔离性、持久性)逢考必问,知识点有木有啊朋友们~今天我们就说一说隔离性。提到隔离性,我们会想到一系列的关键词。脏读、幻读、不可重复读,读未提交、读已提交、可重复读、串行化。那么他们都对应着什么概念呢,又起到了什么作用?1.脏读、幻读、不可重复读...

2018-12-05 15:07:52 366

原创 postfix邮件发送失败分析

mail函数邮件发送失败分析原因分析Postfix 是邮件传输代理软件。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。使用postfix发送mail邮件失败原因分析1. postfix服务未启动 启动命令 sudo /usr/sbin/postfix start 报错:/etc/init.d/postfix: line 73: [: =: unary operator expected 原因:[ "$NETWORKING" = "no" ] &amp

2021-04-14 17:01:21 1831

原创 linux常用命令工具

linux常用命令工具查询多个关键字tail -n 1000 access_log |grep -E "recover|123456" --color统计出现的行数cat access_log | grep phone| wc -l文件切割# 按行切割 # 将test文件按照每100行进行切割split -l 100 test newfile_# 按大些切割# 将test文件按照每100M进行切割split -b 100m test newfile_SCP拷贝*****

2021-04-09 20:21:13 174

原创 记一次Redis Stream学习

Redis StreamRedis Stream是redis5新增的数据结构。Redis Stream主要用于消息队列(MQ - Message Queue),Redis本身已经实现了消息的发布订阅(Pub/Sub)来实现消息队列功能,但她有个缺点就是无法实现消息的持久化。而Redis Stream实现了持久化和主从复制功能,可以让任何客户端访问任何时刻的数据。Redis Stream的结构如下:每个 Stream 都有唯一的名称,它就是 Redis 的 key,在我们首次使用 xadd 指令追加

2021-01-20 11:31:47 230

原创 记一次mysql主从配置

记一次mysql主从配置准备工作1.主从数据库版本最好一致2.主从数据库内数据保持一致修改mysql配置主数据库配置vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=1 //[必须]服务器唯一ID,默认是1,一般取IP最后一段重启mysql,创建用于同步的用户账号打开mysql会话shell>mysql -hlocalhost -uname -ppass

2020-12-25 11:15:42 81

原创 2020-12-25

记一次mysql阻塞问题表锁show processlist 命令,看看当前语句处于什么状态。Waiting for table metadata lock:这类问题的处理方式,就是找到谁持有 MDL 写锁,然后把它 kill 掉。通过查询 sys.schema_table_lock_waits 这张表,我们就可以直接找出造成阻塞的 process id,把这个连接用 kill 命令断开即可。mysql> select blocking_pid from sys.schema_table_

2020-12-25 10:35:02 86

原创 记一次wechatpay-apiv3微信支付SDK的使用

记一次wechatpay-apiv3微信支付SDK的使用介绍微信支付API v3的Guzzle HttpClient中间件Middleware,实现了请求签名的生成和应答签名的验证。项目地址:https://github.com/wechatpay-apiv3/wechatpay-guzzle-middleware环境要求PHP 5.5+ / PHP 7.0+guzzlehttp/guzzle 6.0+安装// 添加wechatpay sdk依赖composer require

2020-12-18 17:08:49 3172 4

原创 MySQL锁

MySQL锁分类锁是计算机协调多个进程或线程并发访问某一资源的机制。锁保证数据并发访问的一致性、有效性;锁冲突也是影响数据库并发访问性能的一个重要因素。加锁是消耗资源的,锁的各种操作,包括获得锁、检测锁是否是否已解除、释放锁等。根据锁粒度不同,MySQL锁大致可分为全局锁、表锁、行锁三类。1.全局锁全局锁就是对整个数据库实例加锁。命令:Flush tables with read lock.当需要让整个库处于只读状态时,可以使用此命令,之后其他线程的增删改及定义语句会被阻塞。全局锁

2020-12-17 10:35:47 65

原创 MySQL索引小结

MySQL索引索引介绍索引的出现其实是为了提升数据的查询效率,就像书的目录一样。常见的索引模型索引的出现是为了提高查询效率,但是实现索引的方式有很多种,所以就引入了索引模型的概念。索引模型的本质是一种数据结构,目的是为了数据的读写速度。哈希表哈希表是一种以健-值存储的数据结构,我们只需输入需要查找的key 就能找到其对应的value。哈希表就是使用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置。其底层依靠数组存储。哈希冲突问题:多个key经过hash函数

2020-12-15 18:08:21 79 1

原创 Elasticsearch介绍与安装

背景1.在海量数据中执行搜索功能时,如果使用mysql效率太低。2.如果关键字搜索不准确,还需要获取到想要的数据。3.搜索出的结果集关键字标红展示。Es介绍Es是使用java语言开发的基于lucene编写的搜索引擎框架,他提供了分布式的全文搜索的功能,并且提供了统一的基于RESTful风格的web接口。lucene:本身就是Apache开源的底层搜索引擎,直接使用成本太高。分布式:主要是提供高扩展能力。全文检索:将一段词语进行分词,并且将分词后的词语进行..

2020-12-09 10:09:44 77

原创 11. 盛最多水的容器

题目描述:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。题解:1.暴力解法:双层循环,计算任意两根柱子之间的面积,然...

2020-09-29 10:09:39 87 1

原创 PHP日期处理类-Carbon

carbonCarbon 是php的日期处理类库(A simple PHP API extension for DateTime.) 关于在Laravel中日期时间处理包Carbon的简单使用,需要的朋友可以参考下。安装可以通过composer来安装Carbon,由于 Laravel 项目已默认安装了此包,所以不需要再次执行上面的命令。composer require nesbo...

2019-12-18 16:27:49 1695 1

原创 插入排序-实现过程

插入排序插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。/** * 插入排序 * @param $arr * @return mixed */function insertSort($arr) { $len = count($arr); if...

2019-08-23 14:00:38 625

原创 为什么int8的取值范围是-128 - 127

为什么int8取值范围是-128 - 127int8占1个字节,1字节(byte)占8位(bit)其中最高位代表符号位 1-负号;0-正号那么最大数值的二进制为:0 1 1 1 1 1 1 1换算成10进制为 从低位到高位开始计算0 1 1 1 1 1 1 10*2^7 + 1*2^6 + 1...

2019-08-15 09:19:48 30810 6

原创 docker给正在运行的容器添加端口映射

给正在运行的容器添加端口映射如果一个容器已经在运行,想要给当前容器添加新的端口映射是没有相关的docker命令的我们采用常规操作,即将容器打包成镜像后再创建新的容器1. 停止正在运行的容器docker ps # 获取容器IDdocker stop 61371241a1a72. 将容器打包成新的镜像docker commit 61371241a1a7 new-image3....

2019-07-19 17:14:07 4589 1

原创 nginx反向代理及静态文件缓存

nginx反向代理server{ listen 80; server_name proxya.com; location / { proxy_pass http://proxyb.com; }}# proxy_pass 用于代理转发 proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径假设下面四种情况分别用 http://proxya.com/...

2019-07-17 14:20:43 4123

原创 nginx搭建静态web资源服务器

有时候服务器目录下的内容是为了让用户浏览下载的,那么配置nginx静态服务就完全满足需求nginx server配置如下server{ listen 80; server_name niuniu.com; root /var/www/niuniu; location / { index inde...

2019-07-05 14:02:32 285

原创 nginx重载、日志分割、热部署

nginx停止获取nginx master进程号ps -ef|grep nginx 发送停止信号kill -QUIT 主进程号 例如:kill -QUIT 16391快速停止Nginx:kill -TERM 主进程号 强制停止Nginx:kill -9 主进程号另外一种神操作nginx -s reload|reopen|stop|quit #重新启动并加载配...

2019-07-04 18:17:27 360

原创 PHP使用钉钉机器人推送即时消息

话不多说直接撸码~1.选择需要接收推送消息的钉钉群。2.点击群设置 3.选择群机器人选项 4.点击添加机器人5.获取机器人hook地址 (API请求接口地址)6.购建消息结构(API请求参数){"msgtype": "text","text": {"content...

2019-02-25 16:31:15 3698

原创 接入google-authenticator opt(one time password一次性密码)

参考资源:https://github.com/ruansheng/technology-study/blob/master/other/otp.md百度百科:一次性密码(One Time Password,简称OTP),又称“一次性口令”,是指只能使用一次的密码。一次性密码是根据专门算法、每隔30或60秒生成一个不可预测的随机数字组合。实现原理:动态密码是基于时间、...

2019-01-10 17:12:54 5075 1

原创 swoole入门-创建websocket服务器

WebSocket服务器是建立在Http服务器之上的长连接服务器,客户端首先会发送一个Http的请求与服务器进行握手。握手成功后会触发onOpen事件,表示连接已就绪,onOpen函数中可以得到$request对象,包含了Http握手的相关信息,如GET参数、Cookie、Http头信息等。建立连接后客户端与服务器端就可以双向通信了 客户端向服务器端发送信息时,服务器端触发onMessa...

2018-11-24 16:15:21 309

原创 swoole入门-创建TCP服务器

swoole_server是异步服务器,所以是通过监听事件的方式来编写程序的。当对应的事件发生时底层会主动回调指定的PHP函数。如当有新的TCP连接进入时会执行onConnect事件回调,当某个连接向服务器发送数据时会回调onReceive函数。 服务器可以同时被成千上万个客户端连接,$fd就是客户端连接的唯一标识符 调用 $server->send() 方法向客户端连接...

2018-11-22 16:46:40 177

原创 swoole入门-编译安装

swoole虽然是标准的PHP拓展,但与普通的拓展不同。普通的拓展只是提供一个库函数。而swoole拓展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。(画外音:swoole是以服务的形式独立于php存在) 安装与一般拓展的安装完全一样1.获取源码安装包wget https://github.com/swoole/swoo...

2018-11-22 14:55:55 187

原创 Linux Centos7编译安装LNMP-PHP环境

1.安装nginx 1)获取nginx安装包 wget -c https://nginx.org/download/nginx-1.10.1.tar.gz 2)解压 tar -zxvf nginx-1.10.1.tar.gz cd nginx-1.10.1 3)配置(使用默认配置并指定安装目录) ...

2018-11-16 23:01:05 1742

原创 Linux免密登录服务器

1.本机:~/.ssh/文件夹获取公钥、私钥文件    公钥:id_rsa.pub    私钥:id_rsa    如您未找到密钥文件,可通过ssh-keygen -t rsa生成。如图     2.目标机(需要登录的远程机器):    1)使用ssh登录目标机器 如:ssh [email protected]    2)输入目标机器密码    3)修改~...

2018-11-16 15:10:11 137 1

原创 使用docker构建自己的php7+nginx开发环境

前言:首先您需要获取php7 及 nginx的镜像仓库地址,不会获取的童鞋可以参考小编上篇文章《使用dockerfile构建自己的镜像仓库》参考镜像仓库地址:php7 -> ccr.ccs.tencentyun.com/ordmeng/php7                        Nginx -> ccr.ccs.tencentyun.com/ordmeng/ngin...

2018-10-10 18:50:15 3463

转载 linux内核升级及docker安装

 首先,您要准备一个 CentOS 的操作系统,虚拟机也行。总之,可以通过 Linux 客户端工具访问到 CentOS 操作系统就行。需要说明的是,Ubuntu 或其它 Linux 操作系统也能玩 Docker,只不过本文选择了以 CentOS 为例,仅此而已。CentOS 具体要求如下:必须是 64 位操作系统 建议内核在 3.8 以上通过以下命令查看您的 CentOS 内核...

2018-10-10 17:29:48 1521

原创 使用dockerfile构建自己的镜像仓库

1.首先您需要配置您Github 创建dockfile项目仓库    1)点击右上角+ -> New repository    2)填写仓库名称 如:dockerfiles    3)选择访问仓库属性 public    4)create repository 创建完成2.然后您还需要在腾讯云上注册自己的账号 https://cloud.tencent.com/3....

2018-10-10 16:58:09 1589

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除