自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 PHP数组详解

PHP数组的定义PHP的数组是一个字典。存储着(key-value)的键值对,可以通过key值快速查找到数组,key可以为整形,或者是字符串。PHP数组是有序的。这里面的顺序指的是插入顺序,即遍历元素的顺序应该和插入的顺序一致。PHP数组的概念PHP数组zend_array对应的是HashTable(也称作散列表),通过某种哈希函数将制定的键映射到对应的值的一种数组结构。因为它让key和value保持着一 一 对 应 关系,所以可以快速根据key查找到对应的值,查找效率O(1)HashTabl

2021-07-01 14:55:48 3851 1

原创 CRONTAB 删除后的恢复

因之前不小心删除了服务器上的crontab(查询的时候因为e和r两个键位太近了。。。),虽然有运维通知后面帮忙恢复了文件;自己还是在网上查找了恢复的方法,记录一下。命令1:cat /var/log/cron* | grep CMD | awk -F’CMD’ ‘{print $2}’ | awk -F’[(|)]’ ‘{print $2}’ | sort -u通过该条命令会从cron日志文件下获取执行过的crontab内容,执行前切换好执行crontab的账户(一般都是root了)。可以将已执行过的内

2020-09-10 17:25:31 820

原创 正则表达式(匹配原则简单版)

元字符原子的筛选方式:| 匹配两个或者多个分支选择[] 匹配方括号中的任意一个原子[^] 匹配除方括号中的原子之外的任意字符;例子:Duang|duang 或者 [Dd]uang 都可以匹配到Duang和duang区间写法:[a-z]匹配a到z的字符, [0-9]匹配0到9的字符。也可以[a-z0-9]. 匹配除换行符之外的任意字符\d 匹配任意一个十进制数字,即{0-9]\D ...

2020-05-05 13:12:32 398

原创 laravel框架各模块解析

csrf攻击csrf发生场景:用户A在请求网站B时登录时输入了自己的个人信息,网站B生成cookie信息返回给浏览器,用户A此时已成功登录。在用户关闭浏览器界面同时打开了网站C,此时网站C返回了一些攻击型代码发送到网站B。网站B此时会议用户A的身份cookie信息和权限去完成网站C的操作。laravel防止csrf操作的方式:由框架本身生成一个token值用于验证非GET的请求,larave...

2020-05-05 12:03:13 982

原创 Nginx+lua+Openresty(分布式缓存)

Nginx官方自带了非常多的核心模块再加上第三方的模块能够满足我们大部分的业务需要,但是业务的需求、业务的场景变化需要添加些额外的功能,如果自己去开发一个nginx模块相对来说比较笨重,我们可以使用lua脚本直接内嵌到nginx当中实现一些业务逻辑,完成一些特殊的功能需求。ngx_lua是Nginx的一个模块,将Lua嵌入到Nginx中,从而可以使用Lua来编写脚本,这样就可以使用Lua编写应用...

2020-03-23 15:44:47 1646

原创 Nginx配置文件及优化设置

Nginx优化配置如何增大Nginx使用CPU的有效时长worker进程数量应当大于等于CPU核数通过合理的设置worker的进程数量,提高cpu利用率,cpu设置等于或者小于核数Syntax: worker processes number auto;Default: worker_processes 1;Context: main减入进程间切换进程间切换是指CPU从一个进...

2020-03-18 14:53:01 257 1

原创 Nginx介绍及配置解析

我们知道Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器。下面将介绍一下可以告诉处理请求的原因。服务器的网络服务模型单进程阻塞的网络服务器创建一个socket,绑定服务器端口(bind),监听端口(listen),在PHP中用stream_socket_server一个函数就能完成上面3个步骤进入while循环,阻塞在accept操作上,等待客户端连接进入。此时程序...

2020-03-18 14:28:30 269

原创 redis集群搭建及问题处理

redis主从+哨兵可以帮助我们满足很多工作场景,但是如果我们所需要处理的数据量过大的话,那么就不会满足需求,比如:我们的redis配置200G内存,但是实际的数据量达到400G那么,我们的主从是无法满足配置的(主从存储数据几乎相同)。想要满足需求的话,那么只能去添加redis机器,也就是说我们要扩充或收缩节点,那么redis的集群(cluster)可以帮我们解决这个问题。Redis Clust...

2020-01-31 14:28:30 227

原创 redis哨兵(docker-compoer)

在介绍redis哨兵之前,先来建立一下模拟哨兵需要搭建的环境(此方法用于快速生成多个容器并统一管理,如不怕麻烦可跳过)。通过之前docker的文章,我们知道可以通过镜像生成容器,可以快速的部署环境,但是却只能单一的生成,每次都需要通过docker run命令来运行,这对于部署多个redis是很不方便的,那么我们可以通过docker-compose来解决这个问题。docker-compose 安...

2020-01-20 16:28:20 259

原创 redis持久化实现及原理

持久化:Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘。 当下次Redis重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置。Redis持久化分为RDB持久化和AOF持久化,前者将当前数据保存到硬盘,后者则是将每次执行的写命令保存到硬盘。RDB...

2020-01-17 16:31:07 149

原创 redis主从复制实现(操作记录)

redis主从复制主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主从复制的作用数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据...

2020-01-17 10:57:05 299

原创 Docker构建及常用命令

Docker常用命令镜像构建查看镜像查看容器构建容器查看网络查看网路详情创建网络类型进入容器配置主从合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图...

2020-01-16 16:43:15 123

原创 Mysql优化学习心得

对于sql语句的优化,sql语句的复杂度将会影响到优化器的处理,也就是会影响到效率,我们可能会想到将一条复杂的sql语句拆分成多个简单的sql语句进行逐一执行,再进行合并得到结果,但这种方式并不是总合适的,影响其效率的因素包括CPU消耗,IO,网络消耗等多个原因。在执行sql语句时,Mysql优化器会对已有的索引进行筛选,所以索引的数量并不是越多越好当查询优化程序发现某个数据值在超过30%的...

2019-09-18 11:12:57 235

原创 Mysql索引的学习心得

索引的分类根据创建分类1.主键索引(聚集索引 & 特殊索引)主键索引也称为聚簇索引,其实我们在创建表后(比如以自增id为主键)时,主键索引已经建立好了;一张表中只能有一个主键索引,通常我们选取的主键索引(比如id)都是自增的,它的记录顺序与磁盘中的物理地址顺序相同的2.二级索引(非聚集索引)我们平时为了优化查询速度所添加的索引都可以称为二级索引,二级索引都可以看成是建立索引字...

2019-09-12 15:03:58 799

原创 事务中两个重要的文件Redo Undo

在之前事务的介绍中我们知道了事务的4个特性(ACID),我们知道隔离性其实就是通过添加各种锁来保证,这次我们来看一下用来保证事务其他3个特性的日志Redo,Undo。在我们了解这两种日志之前,我们先来了解一下Mysql的结构Redo的作用Redo log的主要作用是用于数据库的崩溃恢复Redo的组成存储在内存中的重做日志缓冲redo log buffer存储在磁盘中的重做的日志文件r...

2019-08-02 18:03:50 160

原创 Mysql结构,SQL语句执行流程

在之前事务的介绍中我们知道了事务的4个特性(ACID),我们知道隔离性其实就是通过添加各种锁来保证,这次我们来看一下用来保证事务其他3个特性的日志Redo,Undo。在我们了解这两种日志之前,我们先来了解一下Mysql的结构Mysql结构图从这张图中,我们可以看到将MySQL分成了4个部分,下面将逐步说明一下网络连接层这一块其实就是连接管理,授权认证,可以通过我们平时用的ip,密码连接,...

2019-08-02 16:54:49 157

原创 Mysql几个会被问到的面试题

为什么一定要设置一个主键答:在不设置主键的情况下,innodb会自动为你生成一个隐藏列,作为自增主键。我们自己通常设置的id为主键,会做作为主键索引来使用。主键为什么不推荐有业务含义答:带有业务含义通常都会又可变化性,而且这样的数据不一定是自增的,那么在插入的时候就会造成中间插入的可能性,引发页分裂,产生空间碎片插入中数据库的枚举(enum),为什么通常会用tinnyInt来代...

2019-07-17 17:43:46 233

原创 事务与锁的使用建议(间隙锁,死锁)

事务回滚事务特性:原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。一...

2019-07-08 10:58:05 1521

原创 事务隔离与锁机制

锁的简单概述InnoDB 存储引擎既支持行级锁,也支持表级锁,默认情况下使用行级锁。所谓表级锁,它直接锁住的是一个表,开销小,加锁快,不会出现死锁的情况,锁定粒度大,发生锁冲突的概率更高,并发度最低。所谓行级锁,它直接锁住的是一条记录,开销大,加锁慢,发生锁冲突的概率较低,并发度很高。所谓页级锁,它是锁住的一个页面,它的开销介于表级锁和行级锁中间,也可能会出现死锁,锁定粒度也介于表级锁和...

2019-07-05 14:21:37 243

空空如也

空空如也

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

TA关注的人

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