自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

赵加美的专栏

程序员成长计划

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

原创 达摩克利斯之剑

达摩克利斯之剑此典故出于古希腊的一个历史故事:公元前四世纪西西里东部的叙拉古王迪奥尼修斯(公元前430-367)打击了贵族势力,建立了雅典式的民主政权,但遭到了贵族的不满和反对,这使他感到虽然权力很大,但地位却不可靠。有一次他向宠臣达摩克利斯谈了这个问题,并且用形象的办法向他表明自己的看法。他为了满足一下宠臣达摩克利斯的贪欲,把宫殿交托给他,并赋予他有完全的权力来实现...

2019-11-11 09:19:58 651

原创 动态规划

最近想要看看动态规划的内容,翻了篇知乎回答,但是没能认真的看下去,mark一下要看作者:阮行止链接:https://www.zhihu.com/question/23995189/answer/613096905来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。0. intro很有意思的问题。以往见过许多教材,对动态...

2019-07-26 17:05:00 252

原创 单例模式工厂模式

单例模式https://www.cnblogs.com/yuyu1993/p/5576010.html单例模式又称为职责模式,它用来在程序中创建一个单一功能的访问点,通俗地说就是实例化出来的对象是唯一的。所有的单例模式至少拥有以下三种公共元素:1. 它们必须拥有一个构造函数,并且必须被标记为private2. 它们拥有一个保存类的实例的静态成员变量3. 它...

2019-07-25 18:48:00 142

原创 魔术方法

PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(),__wakeup()...

2019-07-24 22:09:00 96

原创 LRU的原理和实现

双向链表+hashMap能用堆吗?LRU原理在一般标准的操作系统教材里,会用下面的方式来演示 LRU 原理,假设内存只能容纳3个页大小,按照 7 0 1 2 0 3 0 4 的次序访问页。假设内存按照栈的方式来描述访问时间,在上面的,是最近访问的,在下面的是,最远时间访问的,LRU就是这样工作的。image但是如果让我们自己设计一个基...

2019-07-23 18:27:00 189

原创 为什么单线程的redis这么快

网站访问数据的特点大多数为“二八定律”,即80%的业务访问集中在20%的数据上,为了减轻数据压力和提高网站的数据访问速度,可以使用缓存机制来优化网站。为什么redis是单线程因为redis是基于内存的操作,CPU基本不会成为redis的性能瓶颈,使用redis的管道操作(pipelining)每秒可以处理一百万条请求。单线程已经很快了,没有必要多线程了。redis为什么快1、完全基于内存,...

2019-07-22 16:43:37 199

原创 Redis五种数据类型及应用

redis常见的五种数据类型:string、hash、list、set、sorted set(zset)stringstring是简单的key-value类型,效率高。常用命令:get、set、incr、decr、mget等应用:常规的key-value操作、常规计数(微博数、粉丝数、点赞数)hashhash其实也是key-value类型,但是相比较string而言,hash的...

2019-07-18 18:11:00 125

原创 Redis底层原理与实现

redis动态字符串的类型:sdshdr(simple dynamic strings header)sds字符串是字符串的实现,动态字符串是一个结构体,内部有一个buf数组,以及字符串长度,剩余长度等字段,优点是通过长度限制写入,避免缓冲区溢出,另外剩余长度不足时会自动扩容,扩展性较好,不需要频繁分配内存。并且sds支持写入二进制数据,而不一定是字符。C语言的字符串是使用n+1的字符空间...

2019-07-15 12:23:00 816

原创 一些术语

网络的分类:按照地理位置:局域网、城域网、广域网、个人网按照传输介质:有线网、光纤网、无线网按照拓扑结构:星型网络、环形网络、总线型网络通信分类:点对点、广播式使用目的:共享资源、数据处理网、数据传输网服务分类:客户机/服务器网络、对等网网络的概念计算机网络是利用通信线路和网络设备,将位于不同地理位置的且具有独立功能的计算机连接起来,在网络...

2019-07-03 17:27:00 109

原创 关系型数据库特点

关系型数据库:1、最大的特点,事务的一致性2、通用的SQL语言,使得操作关系型数据库非常方便3、ACID:原子性、一致性、隔离性、持久性4、表结构严格,存储数据很难出错非关系型数据库:1、使用键值对存储数据2、数据没有耦合性,易扩展3、不提供sql,无事务处理4、不需要经过sql层的解析,性能很高5、数据存储更加灵活,但是可能导致数据不...

2019-06-26 11:08:00 6574

原创 自动删除过期日志

写shell脚本,利用Linux的crontab脚本来定期删除过期的日志。1 创建shell脚本:touch /目录/日志脚本.sh2 分配可运行权限:chmod +x /目录/日志脚本.sh3 编辑日志脚本:vi/目录/日志脚本.sh4 编辑脚本文件内容:find /脚本目录/ -mtime +7 -name "*log" -execrm-rf{...

2019-06-24 10:58:00 85

原创 索引相关

字段的区分度:select COUNT(DISTINCT column_name)/COUNT(*) from table_name

2019-06-20 16:22:00 71

原创 Linux常用命令

显示所有进程信息:ps -A显示指定用户信息:ps -u root显示所有进程信息,连同命令行:ps -efps 与grep 常用组合用法,查找特定进程:ps -ef|grep fpm将目前属于您自己这次登入的 PID 与相关信息列示出来:ps -l列出目前所有的正在内存当中的程序:ps aux彻底杀死进程:kill -9 进程号 ...

2019-06-19 17:21:00 58

原创 为什么选择nginx

更快高扩展性高可靠性低内存消耗单机支持10万以上的并发连接热部署最自由的BSD许可协议apache和nginx的共同的作用目的,简而言之:接收用户的请求,处理请求,将处理结果返回给用户。Apache:灵活、高效、丰富的扩展模块、活跃的社区支持;对连接的处理:多重处理模块,模块化,使用操作系统资源,对进程和线程进行管理,控制用户的请求。...

2019-06-10 18:42:00 347

原创 死锁

死锁产生的必要条件:1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。3)不剥夺条件...

2019-05-29 14:46:00 71

原创 mac下Charles的安装和iPhone上的配置

从官网下载链接http://www.charlesproxy.com/download附上注册码:Registered Name: https://zhile.ioLicense Key: 48891cf209c6d32bf4安装tips:安装完会提出一个提醒权限设置点解Grant Privileges 信任即可,如果点击N...

2019-05-22 18:02:00 609

原创 PHP的&引用

在 PHP 中引用意味着用不同的名字访问同一个变量内容。这并不像 C 的指针:例如你不能对他们做指针运算,他们并不是实际的内存地址。引用是符号表别名。引用做什么:PHP 的引用允许用两个变量来指向同一个内容。如果对一个未定义的变量进行引用赋值、引用参数传递或引用返回,则会自动创建该变量。如果在 foreach语句中给一个具有引用的变量赋值,被引用的对...

2019-05-21 12:12:00 100

原创 PHP的mb_多字节字符串函数

虽然许多语言每个必要字符都能一对一映射到 8 比特(bit)的值,但也有好几种语言需要非常多的字符来书面通讯,以至于它们的编码范围不能仅仅包含在一个字节里(一个字节 Byte 由 8 比特 bit 构成。每一比特仅能包含两种不同的值: 1 或 0。所以,一字节仅能够表示 256 种不同的值,即 2 的八次方)。 开发多字节字符编码方案是为了在基于字节的常规...

2019-05-15 16:50:00 404

原创 PHP常用字符串函数

addcslashes — 以 C 语言风格使用反斜线转义字符串中的字符addslashes — 使用反斜线引用字符串bin2hex — 函数把包含数据的二进制字符串转换为十六进制值chop — rtrim 的别名chr — 返回指定的字符chunk_split — 将字符串分割成小块convert_cyr_string — 将...

2019-05-14 17:54:00 59

原创 PHP常用数组函数

array_change_key_case — 将数组中的所有键名修改为全大写或小写array_chunk — 将一个数组分割成多个array_column — 返回数组中指定的一列array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值array_count_values — 统计数组中所有的值...

2019-05-13 16:48:00 94

原创 phalcon框架

号称是最快的框架。Phalcon是运行速度最快的一个PHP框架,它的底层是用C实现的,但是上层提供一些PHP扩展,Phalcon作为一款PHP框架以高性能和低消耗著称。尽管它用C语言实现,但是我们并不需要使用C语言,你只要会PHP就可以使用它了。中文文档:http://docs.iphalcon.cn/to be continued... ...

2019-04-18 20:10:00 670

原创 mysql字符的utf-8和utf8mb4

今天在看阿里巴巴的开发手册的时候,看到这样一条:【参考】如果有国际化需求,所有的字符存储与标识,均以utf-8编码,注意字符统计函数的区别。说明:如果需要存储表情,那么选择utf8mb4来进行存储,注意它与utf-8编码的区别utf8mb4是什么?mb4即most bytes 4,是utf-8的超集,并完全兼容utf-8,能够用4个字节存储更多的...

2019-04-15 18:28:00 128

原创 跟着动画来学习TCP三次握手和四次挥手

其实都是四个动作,只是在握手的时候,syn和ack简化为一个动作,看上去就是三次握手了。转载自知乎:https://zhuanlan.zhihu.com/p/38527757TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一。很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答。本篇尝试使用动画来对这个知识点进行讲解,期望读者们...

2019-04-10 10:56:00 47

原创 PHP依赖注入(DI),控制反转(IOC)

在使用laravel的时候,可以看到大量地使用了依赖注入。比如控制器中的HttpRequest对象,各种Model的实现类等等。这种实现方式的好处在于不需要再方法中频繁地new某些实例,实现模块的解耦。依赖倒置是一种软件设计思想,在传统软件中,上层代码依赖于下层代码,当下层代码有所改动时,上层代码也要相应进行改动,因此维护成本较高。而依赖倒置原则的思想是...

2019-04-08 21:06:00 73

原创 PHP7新特性

手册:https://www.php.net/manual/zh/migration70.new-features.php菜鸟教程:http://www.runoob.com/php/php7-new-features.html有意思的新特性:1、PHP7增加了对函数返回值的预声明。启用严格模式declare(strict_types=1);的时候,...

2019-03-26 21:06:00 60

原创 nginx fastcgi访问php的流程

nginx fastcgi访问php1、用户发送http请求报文给nginx服务器2、nginx会根据文件url和后缀来判断请求3、如果请求的是静态内容,nginx会将结果直接返回给用户4、如果请求的是动态内容,nginx会将请求交给fastcgi客户端,通过fastcgi_pass将这个请求发送给php-fpm5、php-fpm会将请求交给wr...

2019-03-21 16:29:00 182

原创 nginx的location语法规则

语法规则: location [=||*|^~] /uri/ { … }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。以xx开头~ 开头表示区分大小写的正则匹配 ...

2019-03-21 14:01:00 272

原创 网络七层模型与四层模型区别

转载自:https://juejin.im/post/59a0472f5188251240632f92作为一个 Web 程序员

2019-02-21 12:00:00 1230

原创 短 URL 系统是怎么设计的?

知乎上看到一个很好的回答,防止之后找不到,粘到这里作者:iammutex链接:https://www.zhihu.com/question/29270034/answer/46446911来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。最烂的回答 <u>实现一个算法,将长地址转成短地址。实现长和短一一对应...

2019-02-13 18:40:00 75

原创 centos安装redis

开始安装安装时,首先需要从Redis网站下载Redis安装包,比如本例:redis-3.2.5.tar.gz,也可以直接下载:[root@myhost soft]# wget http://download.redis.io/releases/redis-3.2.5.tar.gz该安装包是源码包,需要本地编译才可以安装运行。将安装源码包解压到某个目录下...

2018-12-07 11:02:00 51

原创 PHP使用正则表达式

正则表达式(regular expression) 是一种文本模式,包括普通字符和特殊字符(元字符)。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。通过正则表达式,可以:测试字符串内的模式(数据验证)替换文本基于模式匹配从字符串中提取子字符串正则表达式是基于文本的编辑器和搜索工具中的一个重要部分正则表达式描述了一种字符...

2018-11-20 20:53:00 217

原创 PHP中使用redis的基础

Redis 是开源免费的,是一个高性能的key-value数据库。Redis特点Redis 与其他 key - value 缓存产品有以下三个特点:1.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash...

2018-11-08 18:38:00 93

原创 PHP中json的编码与解码

json_encode() & json_decode()json_encode()所有字符串数据的编码必须是UTF-8,对索引数组和关联数组的处理是不同的,一个输出结果是数组,一个是对象运行示例:➜~ php -r "print_r(json_encode(['a','b','c']));"["a","b","c"]➜~ php -r "...

2018-11-02 18:09:00 111

转载 ELK的使用

主要为Kibana的使用ELK是ElasticSearch+Logstash+KibanaElasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构...

2018-07-12 15:12:29 2634

转载 PHP二维数组遍历

在PHP应用当中,二维数组的应用算是高频率的了,尤其遇到较为复杂的计算时,基本上都要用到二维或者多维数组的,而在编历多维数组使用的较多的应该是 for 循环遍历和 foreach 遍历两个函数了,其中没什么特殊要求的话,基本上都是在使用 foreach 遍历函数,当然,我们可以通过这两个遍历函数来组合成各种各样的输出方式。还是老样子,一直在使用,从来未记住,简单的遍历输出还是较为简单的,下面是

2018-06-08 11:10:40 1075

转载 PHP5.5.3升级PHP7.0.2

用数组标识符为类定义数组类型的属性时,数组的键不会被覆盖 1&lt;?php2class C {3    const ONE = 1;4    public $array = [5        self::ONE =&gt; 'foo',6        'bar',7        'quux',8   ];9}10var_dump((new C)-&gt;array);11/*125.5....

2018-06-08 11:09:34 1186

原创 CSS中的块级元素、行内元素和空元素

根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display属性值为“block”,称为“块级”元素(block-level);而span元素的默认display属性值为“inline”,称为“行内”元素。在HTML元素中,没有内容的 HTML 元素被称为空元素。块级元素,会自动占据一

2017-11-26 22:06:19 1317

转载 foreach遍历二维数组的方法

foreach是最常用的遍历数组元素的方式。foreach结构并非操作数组本身,而是操作数组的一个备份。以下为两种foreach遍历二维数组的方法。

2017-11-20 22:22:44 12139

转载 MySQL中char和varchar的区别

char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:

2017-11-16 21:36:58 235

原创 cookie和session的区别

1、cookie存在浏览器中,session存在数据库中;2、cookie相比较而言不是那么安全,别人可以分析放在本地的cookie进行cookie欺骗,考虑到安全的时候应该用session;3、session会在一定时间内存储在服务器上,当访问增多的时候,会占用服务器的性能个,考虑减轻服务器性能的时候,应该用cookie;4、单个cookie保存数据不能...

2017-11-13 21:28:00 38

空空如也

空空如也

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

TA关注的人

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