自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nosee123的博客

只有变好过了,才知道之前有多差 ; 我不怕够不着,我只怕没能把握好机会。爱 奋 斗 爱 梦 想 !

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

原创 Linux深入探索08-软件管理与安装(dpkg与apt)

----- 最近更新【2022-01-01】-----本文目录结构预览:一、简介二、dpkg1、简介2、deb 软件包命名规则3、dpkg软件包相关文件介绍4、dpkg数据库5、dpkg 子命令三、dpkg 使用手册1、安装2、移除软件包3、查询四、apt1、apt 简介2、工作原理3、apt 相关文件4、源文件五、apt使用手册1、apt-get2、apt-cache六、参考一、简介前面的一篇文章《Linux深入探索06-软件管理与安装(源码安装)》详细介

2022-01-25 17:49:56 1320

原创 Linux深入探索07-软件管理与安装(RPM与YUM)

----- 最近更新【2022-01-25】-----本文目录结构预览:一、简介二、RPM1、RPM优缺点2、rpm包命名的含义3、RPM安装软件的默认路径4、RPM安装原理图三、RPM 使用手册1、软件安装(install)2、软件升级3、查询模式4、卸载软件四、YUM1、YUM的特点2、YUM原理说明五、YUM的配置文件1、容器说明2、容器查询3、配置文件修改六、YUM使用手册1、查询2、安装与升级3、卸载4、软件组管理七、参考一、简介前面的一篇

2022-01-25 17:47:44 251

原创 Linux深入探索06-软件管理与安装(源码安装)

一、简介在Linux平台下,软件包的类型可以划分为两类:源码包、二进制包。源码包:即程序软件的源代码(一般也叫Tarball,即将软件的源码以tar打包后再压缩的资源包)。二进制包:如 Red Hat发行版的.rpm包,Debian发行版的.deb包。我将会分三章节来讲解linux中软件的安装与管理,分别是:源码安装(源码包)RPM与YUM(rpm包:如CentOS系统)dpkg与apt-*(deb包:如Unbuntu系统)如果你明确自己要用的是哪种安装方式,那你也可以只看相关的那一章节

2022-01-16 22:41:52 516

原创 Linux深入探索05-标准I/O:重定向和管道

----- 最近更新【2021-12-31】-----一、简介Unix 最一流的特性之一就是将键盘键入的数据视为与从文件中读取的数据相同。例如,假如你有一个程序需要读取一系列的名称,每行一个。这样的程序既可以从磁盘上的文件中读取名称,也可以从键盘输入读取名称。该程序不需要以特殊的方式编写就可以拥有这样的灵性。这一特性称为“标准输入”,已经构建在Unix中。标准输入允许所有的Unix程序以相同的方式读取数据,而不必考虑数据源。同理,当Unix程序输出数据时,它们可以利用“标准输出”。这允许所有的程序以相

2021-12-31 06:35:03 273

原创 Linux深入探索04-Bash shell

----- 最近更新【2021-12-30】-----一、简介简单地来说,shell 就是一个 Unix 程序,充当用户界面和脚本解释器,允许用户输入命令以及间接地访问内核的服务。从功能方面来说:第一,shell 是一个读取并解释所输入命令的程序。用户每输入一条 Unix 命令,shell 就读取该命令,并指出应该怎么做,所以 shell 是一个命令处理器。第二,shell 还支持一些类型的编程语言。使用该语言可以编写由 shell 解释的程序,这些程序称为 shell 脚本。目前比较流行的sh

2021-12-31 06:33:16 353

原创 Linux深入探索03-文本编辑vi/vim

一、简介Unix系统的文本编辑器有许多种(vi、vim、nano、emacs等),但本文只讨论vi/vim,因为vi/vim是Unix系统上最常用的文本编辑器。绝大部分Unix系统都默认安装有vi或者vim程序,或者二者同时安装。其实vim就是vi的改进版,而且现在很多Linux系统都用vim取代了vi,但是同时又保留了vi这个命令的使用习惯。意思就是,在你的系统上vi和vim命令都可以使用,但其实你使用的是同一个程序,因为vi指向的也是vim。用下面的方法你可以证明你使用的vi是不是vim:lin

2021-12-24 03:28:10 488

原创 Linux深入探索02-文档查看:man与info

一、简介Unix系统功能之庞大和复杂,以至于世界上没有一个人能够知道 Unix 的所有内容,即便是某一种特定类型的 Unix,甚至没有一个人能够知道 Unix 的大部分内容。据一些网站的不完全统计,Unix常用命令约有500个,不常用命令约7000个。所以一个人想要去掌握Unixt系统的所有命令不太现实,也没有这个必要。因为,当我们需要使用一个我们不会或者不熟悉的命令时,我们只需要查看Unix的文档资料就行,当然你也可以百度或者goolge。但是,学会如何使用Unix提供的文档资料系统实在是太有用了,你

2021-12-24 03:26:39 950

原创 高性能MySQL07-EXPLAIN详解

一、简介explain命令用于分析单条SQL语句,是查看优化器如何决定执行查询的主要方法。要使用EXPLAIN,只需在查询中的SELECT关键字之前增加EXPLAIN这个词。MySQL会在查询上设置一个标记。当执行查询时,这个标记会使其返回关于在执行计划中每一步的信息,而不是执行它。它会返回一行或多行信息,显示出执行计划中的每一部分和执行的次序。如:mysql> explain se...

2019-03-26 00:55:47 165

原创 高性能MySQL06-查询优化(慢查询)

一、分析原因SQL语句慢查询的原因有多种,如:1)数据方面:需要查询的表数据量太大导致性能下降;是否向数据库请求了不需要的数据行或数据列;MySQL是否在扫描额外的记录2)SQL语句太过于冗余3)等下面我们列出一下分析SQL查询慢的一些方法:1、记录慢查询日志分析查询日志,不要直接打开慢查询日志进行分析,这样比较浪费时间和精力,可以使用pt-query-digest工具进行分析...

2019-03-26 00:55:03 243

原创 高性能MySQL05-索引原理

一、简介索引类似于书籍的目录,要想找到一本书的某个特定主题,需要先查找书的目录,定位对应的页码。存储引擎使用类似的方式进行数据查询,先去索引当中找到对应的值,然后根据匹配的索引找到对应的数据行。一般来说,在WHERE和JOIN中出现的列需要建立索引,但也不完全如此,因为MySQL只对<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE才会使用索引。索引...

2019-03-19 13:48:22 1766 3

原创 MySQL基础07-事务

一、简介MySQL提供了两种事务型的存储引擎:InnoDB和NDB Cluster。另外还有一些第三方存储引擎也支持事务,比较知名的包括XtraDB和PBXT。事务的4大特性ACID。ACID表示原子性、一致性、隔离性和持久性。一个很好的事务处理系统,必须具备这些标准特性。二、事务的ACID特性1、原子性(Atomicity)一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有...

2019-03-14 20:52:23 119

原创 MySQL基础05-关联查询

简介数据库的关联查询可分为5种,它们分别是:交叉连接(CROSS JOIN)、内连接(INNER JOIN)、外连接(LEFT JOIN/RIGHT JOIN)、联合查询(UNION与UNION ALL)、全连接(FULL JOIN)。实验表A:mysql&amp;gt; select * from A;+------+--------+| id | name |+------+---...

2019-03-14 16:21:04 160

原创 MySQL基础04-常用分组聚合函数

一、聚合函数在一个行的集合(一组行)上进行操作,对每个组给一个结果。常用的组函数:函数描述AVG([distinct] expr)求平均值COUNT({*|[distinct] } expr)统计行的数量MAX([distinct] expr)求最大值MIN([distinct] expr)求最小值SUM([distinct] expr)...

2019-03-12 22:16:44 133

原创 MySQL基础03-基础操作

一、数据库常用命令1、帮助mysql&amp;amp;gt; help contents;2、连接与关闭mysql -u -p -h -P3、创建/删除数据库create database [if not exists] dbName; //创建drop database dbName; //删除4、统计数据库信息show table status [{from|in} db_name]...

2019-03-12 21:02:51 97

原创 MySQL基础02-列属性

一、简介MySql中,真正约束字段的是数据类型,但是数据类型的约束太单一,需要有一些额外的约束,来更加保证数据的合法性。MySql中的常用列属性有:null、not null、default、zerofill、primary key、auto_increment和comment。二、列属性1、NULL与 NOT NULLmysql数据库默认字段都是为null的,但是在实际开发过程中,尽可...

2019-03-12 16:47:45 165

原创 MySQL基础01-数据类型

一、整数类型每个整型类型可以指定一个最小显示宽度(注意:这个宽度并不表示存储的值有多大)类型存储空间(N)取值范围:-2(N-1)到 2(N-1)-1TINYINT8-128……127SMALLINT16-32768……32767MEDIUMINT24-8388608……8388607INT32-2147483648……214748364...

2019-03-12 15:28:19 146

原创 高性能MySQL03-存储引擎

一、简介关于InnoDB与MyISAM存储引擎已经在前面的章节有所介绍,这里就不再重复了,谈谈MySQL的其它存储引擎吧。二、其它的存储引擎1、CSV引擎CSV引擎可以将普通的CSV文件作为MySQL的表来处理,但这种表不支持索引。CSV引擎可以在数据库运行时拷入或者拷出文件。可以将Excellent等电子表格软件中的数据存储为CSV文件,然后复制到MySQL数据目录下,就能在MySQL中...

2019-03-12 00:38:18 143

原创 高性能MySQL04-锁机制

一、简介MySQL中有着Lock和Latch的概念,在数据库中,这两者都可以被称为“锁”,但是两者有着截然不同的含义。Latch一般称为闩锁(轻量级的锁),因为其要求锁定的时间必须非常短。若持续的时间长,则应用的性能会非常差,在InnoDB引擎中,Latch又可以分为mutex(互斥量)和rwlock(读写锁)。其目的是用来保证并发线程操作临界资源的正确性,并且通常没有死锁检测的机制。Lo...

2019-03-08 19:45:54 159

原创 高性能MySQL01-MyISAM和InnoDB的区别

一、简介它们基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行速度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。相对而言,MyISAM崩溃后发生损坏的概率比InnoDB要高很多,而且恢复速度也要慢。InnoDB的性能和自动崩溃恢复特性,使得它在非事务型存储的需求中也很流行。...

2019-03-05 17:59:41 158

原创 OSI七层模型与TCP/IP五层模型

一、简介七层模型,亦称OSI(Open System Interconnection)参考模型,是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。在这个OSI七层模型中,每一层都为其上一层提供服务、并为其上一层提供一个访问接口或界面。二、七层模型1、应用层(Application Lay...

2019-02-21 18:45:51 324

原创 PHP强化之24 - 常用配置项

一、简介PHP的配置项可以在配置文件php.ini中配置,也可以在脚本中使用ini_set()函数临时配置。二、常用配置项1、错误信息相关配置1)display_errors设定PHP是否将任何错误信息包含在返回给Web服务器的数据流中。(PHP将任何由error_reporting所定义的错误信息作为错误数据流返回给Web服务器)如:display_errors = On2)err...

2019-02-20 21:33:12 222

原创 PHP强化之23 - 命名空间

文章目录一、简介二、命名空间的定义三、命名空间的使用四、使用命名空间:别名/导入五、注意事项参考一、简介什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,目录就扮演了命名空间的角色。而在PHP当中,命名空间就扮演了目录的角色,而PHP代码中的类(包括抽象类和traits)、接口、函数和常量则就扮演了文件的角色。PHP...

2019-01-18 00:49:49 109

原创 php学习资源整理--干货

【更新时间:2019-1-17】一、php相关官方网站:官方手册:http://php.net/manual/en/index.php中文版:http://php.net/manual/zh/index.php个人博客:歪麦博客:https://www.awaimai.com/雷雪松:https://www.leixuesong.cn/老彭的博客:http://itopic....

2019-01-17 19:45:49 449

原创 PHP强化之22 - CGI、FastCGI与PHP-FPM

一、简介在搭建 LAMP/LNMP 服务器时,会经常遇到 PHP-FPM、FastCGI和CGI 这几个概念。如果对它们一知半解,很难搭建出高性能的服务器。接下来我们就以图形方式,解释这些概念之间的关系。二、原理在整个网站架构中,Web Server(如Apache)只是内容的分发者。举个栗子,如果客户端请求的是 index.html,那么Web Server会去文件系统中找到这个文件,发送...

2019-01-15 17:57:37 126

原创 HTTP协议详解4--状态码

一、简介方法是用来告诉服务器做什么事情的,状态码则用来告诉客户端发生了什么事情。状态码是在每条响应报文的起始行中返回的。会返回一个数字状态和一个可读的状态。数字码便于程序进行差错处理,而原因短语则更便于人们理解。状态码分类如下:整体范围已定义范围分类100~199100~101信息提示200~299200~206成功300~399300~305重...

2019-01-13 18:20:35 466

原创 HTTP协议详解3--请求方法

一、简介请求的起始行以方法作为开始,方法用来告知服务器要做些什么。HTTP规范中定义了一组常用的请求方法。比如,GET方法负责从服务器获取一个资源,POST方法会向服务器发送需要处理的数据,OPTIONS方法用于确定Web服务器的一般功能,或者Web服务器处理特定资源的能力。如下描述了7种常用的HTTP方法。注意,德有些方法的请求报文中有主体,有些则是无主体的请求。方法描述是否包...

2019-01-13 18:00:28 174

原创 HTTP协议详解2--请求头与响应头

一、简介从web客户端发往web服务器的http报文称为请求报文(request message),从服务器发往客户端的报文称为响应报文(response message),此外没有其它类型的http报文。http请求和响应报文的格式很类似,都包括以下3个部分:起始行(start line)报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。首...

2019-01-13 17:39:01 1259

原创 HTTP协议详解1--工作原理

一、简介HTTP是个应用层协议。HTTP无需操心网络通信的具体细节;它把联网的细节都交给了通用、可选的因特网传输协议TCP/IP。只要建立了TCP连接,客户端和服务器端之间的报文交换就不会丢失、不会被破坏,也不会在接收时出现错序了。用网络术语来说,HTTP协议位于TCP的上层。HTTP使用TCP来传输其报文数据。在HTTP客户端向服务器发送报文之前,需要用网际协议(Internet Prot...

2019-01-13 02:32:12 507

原创 Linux软件安装管理之--dpkg与apt-*详解

一、序言上一篇文章《Linux软件安装管理之–源码安装详解》详细介绍了Linux平台下的源码包安装原理,虽然使用源代码进行软件编译可以具有定制化的设置,但对于Linux distribution的发行商来说,则有软件管理不晚的问题,毕竟不是每个人都会进行源代码编译的。这个问题将会严重的影响linux平台上软件的发行与推广。为了解决上述的问题,厂商先在他们的系统上面编译好了我们用户所需要的软件,...

2019-01-07 20:54:01 638

原创 Linux软件安装管理之--RPM与YUM详解

一、序言上一篇文章《Linux软件安装管理之–源码安装详解》详细介绍了Linux平台下的源码包安装原理,虽然使用源代码进行软件编译可以具有定制化的设置,但对于Linux distribution的发行商来说,则有软件管理不晚的问题,毕竟不是每个人都会进行源代码编译的。这个问题将会严重的影响linux平台上软件的发行与推广。为了解决上述的问题,厂商先在他们的系统上面编译好了我们用户所需要的软件,...

2019-01-07 20:38:25 264

原创 Linux软件安装管理之--源码安装详解

一、安装包分类在Linux平台下,软件包的类型可以划分为两类:源码包、二进制包。源码包:即程序软件的源代码(一般也叫Tarball,即将软件的源码以tar打包后再压缩的资源包)。二进制包:如 Red Hat发行版的.rpm包,Debian发行版的.deb包。这篇文章将要介绍的是Linux平台下的源码安装,关于二进制包的安装可以查看我的另两篇文章:《Linux软件安装管理之——RPM与YUM...

2019-01-07 20:20:05 411

原创 Redis学习笔记【08】 - 有序集合

一、简介有序集合相对于哈希、列表、集合来说会有一点点陌生,但既然叫有序集合,那么它和集合必然有着联系,它保留了集合不能有重复成员的特性,但不同的是,有序集合中的元素可以排序。但是它和列表使用索引下标作为排序依据不同的是,它给每个元素设置一个分数(score)作为排序的依据。如图所示,该有序集合包含kris、mike、frank、tim、martin、tom,的分数分别是1、91、200、220、...

2019-01-07 20:06:02 153

原创 Redis学习笔记【07】 - 集合

一、简介集合(set)也是用来保存多个的字符串元素,但和列表类型不一样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。一个集合可以存储2^32 - 1个元素。Redis除了支持集合内的增删查改,同时还支持多个集合取交集、并集、差集,合理地使用好集合类型,能在实际开发中解决很多实际问题。二、命令1、集合内操作1)添加元素sadd key element...

2019-01-06 16:12:12 355 3

原创 PHP强化之21--include与require

一、简介include和require都是引入指定的文件。_once表示只引入一次,即之前已经引入过的不再引入。引用原理:被包含文件先按参数给出的路径寻找,如果没有给出目录(只有文件名)时则按照 include_path 指定的目录寻找。如果在 include_path 下没找到该文件则 include 最后才在调用脚本文件所在的目录和当前工作目录下寻找。如果最后仍未找到文件则 includ...

2019-01-05 17:00:09 123

原创 Redis学习笔记【06】 - 列表

一、简介列表(list)类型是用来存储多个有序的字符串,如图2-18所示,a、b、c、d、e一个元素从左到右组成了一个有序的列表,列表中的每个字符串称为元素(element),一个列表最多可存储 2^32 - 1个元素。在Redis中,可以对列表两端插入(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定索引下标的元素等(如图2-18和图2-19所示)。列表是一种比较灵活的数据结...

2019-01-05 15:59:28 171

原创 PHP强化之20 - 魔术方法

魔术方法是PHP面向对象中特有的特性。它们在特定的情况下被触发,都是以双下划线开头,你可以把它们理解为钩子,利用魔术方法可以轻松实现PHP面向对象中重载(Overloading即动态创建类属性和方法)。魔术方法很多还是成对出现的,以下列出目前PHP中所有的魔术方法:1、__construct()与__destruct__construct(),类的构造函数。在使用 new关键字使用类实例化...

2019-01-05 02:56:18 131

原创 PHP强化之19 - 静态 Static

一、简介static关键字用来定义静态方法和属性,也可以用来定义静态变量以及后期静态绑定。声明类属性或方法为静态,就可以不实例化类而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。二、静态方法和属性案例说明:class Foo{ public static $my_static = 'foo'; //声明静态属性 public function ...

2019-01-05 01:02:12 168

原创 Redis学习笔记【05】 - 哈希

一、简介几乎所有的语言都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组。在Redis中,哈希类型是指键值本身又是一个键值对结构,形如value={{field1,value1},…{fieldN,valueN}},Redis键值对和哈希类型二者的关系可以如下图表示:Tip:哈希类型中的映射关系叫作field-value,注意这里的value是指field对应的值,不是键对应...

2019-01-03 10:16:33 127

原创 Redis学习笔记【04】 - 字符串

一、简介字符串类型是redis最基础的数据结构。首先键都是字符串类型,而其它几种数据结构类型都是在字符串类型基础上构建的,所以字符串类型能为其他四种数据结构的学习奠定基础。字符串类型的值实际可以是字符串(简单的字符串、复杂的字符串(例如:JSON、XML))、数字(整数、浮点数)、甚至是二进制(图片、音频、视频),但值最大不能超过512MB。二、命令1、常用命令1)设置值set key...

2019-01-02 23:27:19 115

原创 Redis学习笔记【03】 - 常用全局命令

Redis有5种数据结构,它们是键值对中的值,对于键来说有一些通用的命令。1、查看所有键keys *如:2、键总数dbsize如:Tip:dbsize命令在计算键总数时不会遍历所有键,而是直接获取redis内置的键总数变量,所以dbsize命令的时间复杂度是O(1)。而keys命令会遍历所有键,所以它的时间复杂度是O(n),当redis保存了大量的键时,线上环境禁止使用。3、检...

2018-12-30 11:51:00 99

空空如也

空空如也

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

TA关注的人

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