自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 CentOS7安装Python3

今日需要在CentOS下临时做一个实验,安装了Python3(版本为3.7.6),以下为安装过程: 安装依赖包: yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel...

2020-02-20 17:26:54

阅读数 89

评论数 0

原创 Redis-压缩列表

2020-02-12 21:06:52

阅读数 262

评论数 0

原创 Redis-整数集合

2020-02-01 18:49:48

阅读数 440

评论数 0

原创 现有文件夹添加到git仓库的步骤

保存一下现有文件夹添加到git仓库的步骤(已创建好空的仓库,地址为:https://git.xxx.com/firework/xxx.git) cd existing_folder git init git remote add origin https://git.xxx.com/firew...

2020-02-01 18:41:17

阅读数 13

评论数 0

原创 Redis-跳跃表

2020-01-30 20:20:42

阅读数 443

评论数 0

原创 Redis-字典

2020-01-29 18:20:43

阅读数 470

评论数 0

原创 Redis-链表

2020-01-28 20:18:09

阅读数 454

评论数 0

原创 Redis-SDS

2020-01-28 20:16:45

阅读数 459

评论数 0

原创 简述Times33散列函数

闲来无事,随手翻看《Redis5 设计与源码分析》的时候再次看到了哈希函数times33,想着之前在学习PHP源码的时候也看到过这个哈希函数,就想好好研究一下,但是查阅许久都没有找到满意的结果,以下内容部分摘自Laruence介绍PHP中的hash算法的博客,原文地址:http://www.lar...

2019-11-02 11:39:46

阅读数 2454

评论数 0

原创 排序算法之 - 归并排序

归并排序也有类似于快速排序的 切割 的过程,但是快速排序会选择基准值,而归并排序则直接将列表 尽可能两等分(若长度为奇数,那么有一侧会少一个元素,左侧还是右侧是无妨的)。当分割到左右两侧都只剩下一个元素的时候,分割完成,开始往上层拼接结果。拼接的大致流程是:取左右两侧队首的元素,比较两者大小,较小...

2019-10-30 20:48:02

阅读数 6781

评论数 0

原创 Python根据指定的日期获取之前或之后的日期

编写Python脚本时需要根据指定日期获取之后的日期,在此记录一下,以下是源码: # coding=utf-8 import datetime # 指定开始日期是2015-01-01 date_start = datetime.date(2015, 1, 1) # 以今天为开始日期 date_...

2019-10-30 09:47:49

阅读数 84

评论数 0

原创 排序算法之 - 快速排序

快速排序的第一步是在列表中随机选取一个 基准值,将列表中剩余的其他数与基准值 逐一比较,小于基准值的放在基准值左侧,大于基准值的放在基准值右侧,这样就会形成如下的新列表: [小于基准值的列表] + 基准值 + [大于基准值的列表] 接下来对左侧小于基准值的列表继续执行上述过程,直至最...

2019-10-29 17:28:48

阅读数 6405

评论数 0

原创 排序算法之 - 插入排序

插入排序 插入排序与选择排序一样,也分成:已排序列表 和 未排序列表 两部分。它也是重复执行一个步骤的过程:从右侧未排序列表取出第一个值,将它“插入”左侧已排序区域的合适位置,具体做法有不同的理解方式,比如:(方式一)先将它合并到左侧已排序列表的最右侧,然后针对已排序列表执行类似冒泡排序的过程 ...

2019-10-26 17:30:03

阅读数 6515

评论数 0

原创 排序算法之 - 选择排序

选择排序 选择排序也是重复执行一个动作的流程:从 待排序列表 中查找 最小 的元素,将它与 待排序列表 的 第一个元素进行 交换,交换之后第一个元素进入 已排序列表,除去 第一个元素之后的其他元素组成 下一轮的待排序列表,其初始状态如图: 第一轮运行流程及结果: 第二轮运行流程...

2019-10-25 20:45:11

阅读数 6567

评论数 0

原创 排序算法之 - 冒泡排序

冒泡排序 冒泡排序就是重复执行:从最右侧开始,依次比较相邻的两个元素的大小,右侧小于左侧则交换两者的位置,看起来右侧的较小的数就好像渐渐“浮”到左边,以下为示例: 第一轮运行流程及结果(实线为交换,虚线为不交换): 第二轮运行流程及结果: 第三轮运行流程及结果: ...

2019-10-25 18:50:43

阅读数 6651

评论数 0

原创 beego路由(router)设置的说明

找了好多博客,发现都是beego官方文档的复制粘贴,实在是难看。。所以把自己的实验结果在此记录一下(持续更新…) router的设置 router.go使用的是Namespace的模式,如下: ... beego.NSNamespace("/assistant", b...

2019-10-24 10:30:32

阅读数 201

评论数 0

原创 PHP 中的 $_SERVER 详解

以下内容摘自百度: https://baike.baidu.com/item/$_SERVER/4897514 详细参数 PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用。 $_SERVER['PHP_SELF'] #当前正在...

2019-10-24 09:11:06

阅读数 1875

评论数 0

原创 start_php_framework - 基础篇 - 1.5 Use Db in controller

1.5 Use Db in controller 有了前序的准备,这一步需要做的只是组合 Step1:在start_php_framework/application/home/controller/Index.php中新增一个方法useDb(),尝试进行数据库的调用,添加的代码如下: ...

2019-10-23 20:42:37

阅读数 330

评论数 0

原创 start_php_framework - 基础篇 - 1.4 Implementation of router

1.4 Implementation of router 下一步我们实现简单的路由,来进行controller的调用 Step1:在start_php_framework根文件夹下新建application文件夹,然后修改composer.json,新增一个命名空间app。修改之后重新在c...

2019-10-23 20:40:12

阅读数 336

评论数 0

原创 start_php_framework - 基础篇 - 1.3 Operations of sqlCon

1.3 Operations of sqlCon 数据库的连接已经实现了,具体的使用还没有进行封装。接下来进行链式操作的方法的封装,准备实现以下列表中的方法: 方法名 实现的功能 table() 指定要连接的表 field() 指定要查询的字段 alias() 别名 ...

2019-10-23 20:38:41

阅读数 308

评论数 0

原创 start_php_framework - 基础篇 - 1.2 Connect to mysql

1.2 connect to mysql PHP的项目怎么少得了数据库的连接呢,接下来实现数据库的连接 创建配置 Step1:在根目录创建config文件夹用于存放配置文件(项目中会有许多不同的配置,关于数据库,缓存,日志,路由等等,所以需要一个专门存放配置文件的地方,并拆分成不同的配置文...

2019-10-23 20:36:50

阅读数 327

评论数 0

原创 start_php_framework - 基础篇 - 1.1 Let's Start

1.1 Let’s Start 初次创建 开篇的目的很简单,创建一个空的PHP项目(文件夹),里边写一个index.php,输出一个Hello World!即可。 Step1:创建空文件夹start_php_framework,内部再创建一个web文件夹,再在web文件夹下创建index....

2019-10-23 20:35:13

阅读数 332

评论数 0

原创 start_php_framework - 前言 - 论重复造轮子的意义

前言 其实当下已经有许许多多优秀的PHP框架,在真实编写业务代码的项目中并不需要我们自己动手去从零编写一套框架,有那么多优秀的框架:Yii、Laravel、ThinkPHP等等开箱即用即可。然而,诸多的PHP开发者止步于业务的增删改查,对数据库和缓存浅尝辄止,没有更多的思考,没有更深的学习。而当...

2019-10-23 20:29:52

阅读数 279

评论数 0

转载 漫画:什么是跳跃表?

这是发生在很多年以前的故事...... 几天以前...... 几天之后...... 拍卖行的商品总数量有几十万件,对应数据库商品表的几十万条记录。 如果是按照商品名称精确查询还好办,可以直接从数据库查出来,最多也就上百条记录。 如果...

2019-10-18 14:13:11

阅读数 9278

评论数 0

原创 使用redis-dump迁移redis

使用redis-dump迁移redis 首先是安装工具,过程如下(以CentOS7为例): yum -y install ruby rubygems ruby-devel gem sources -a http://gems.ruby-china.org此路不通,根据官方说明,需要把.org切...

2019-10-16 09:38:24

阅读数 2088

评论数 0

原创 Nginx + php-fpm 初始化配置

总的来说,Nginx + php-fpm的初始化配置还是比较简单的,如果没有配置好,在访问php文件的时候会表现为将文件直接下载下来了,这时候其实就是php脚本没能被正常解析。这时候排查的点主要有两个: 1、检查php-fpm.conf中的listen,如果是listen = /tmp/php...

2019-10-10 17:15:24

阅读数 6327

评论数 0

原创 PHP7内核学习 - Fpm的master进程和worker进程

Fpm的master进程 作为一种多进程的模型,Fpm由一个master进程加多个worker进程组成。 当master进程启动时,会创建一个socket,但是他本身并不接收/处理请求。他会fork出子进程来完成请求的接收和处理。所以,master的主要职责是管理worker进程,比如for...

2019-10-05 15:06:42

阅读数 5227

评论数 0

原创 PHP7内核学习笔记 - zval中的知识点

PHP5中的zval结构 struct _zval_struct { union { long lval; double dval; struct { char *val; int len;...

2019-10-05 14:50:06

阅读数 29

评论数 0

原创 PHP7内核学习笔记 - 数组

理想状况下,无需任何比较就能找到待查关键字,查找的期望时间复杂度为O(1) PHP7散列表基本结构: // zend_array和HashTable的含义是相同的,没有任何区别 typedef struct _zend_array zend_array; typedef struct _ze...

2019-10-05 14:47:35

阅读数 32

评论数 0

原创 关于原码、反码和补码的笔记

上来先敲黑板,说重点(重要的事情说三遍): 计算机中以补码进行存储计算 计算机中以补码进行存储计算 计算机中以补码进行存储计算 所以,一切的运算都要先得到数据的补码,不要上来就拿原码在那干,得到的结果会漫天飞舞,正负数一起算会算到你怀疑人生。。可以尝试将十进制数字的二进制打印出来看看,正...

2019-10-05 14:45:10

阅读数 6734

评论数 0

原创 PHP7内核学习笔记 - 类的成员属性

属性可以在定义的时候初始化,但是必须是固定值,不可以是变量,也不可以依赖运行时信息。比如protected $time = time();就是不合法的。 成员属性分为两类:静态和非静态(普通属性)。静态属性使用::进行访问,普通属性使用->进行访问。静态属性为各个对象共享的,与常量类...

2019-10-05 14:36:49

阅读数 6273

评论数 0

原创 vld的安装

下载地址:http://pecl.php.net/package/vld 安装过程如下: wget http://pecl.php.net/get/vld-0.16.0.tgz tar xvf vld-0.16.0.tgz cd vld-0.16.0 phpize ./conf...

2019-10-05 14:22:50

阅读数 43

评论数 0

原创 pip install 很慢,使用国内镜像

执行pip install的时候经常会需要等很久,找到了国内镜像,在此留存: 国内镜像列表 http://pypi.douban.com/simple/ 豆瓣 http://mirrors.aliyun.com/pypi/simple/ 阿里 http://pypi.hustunique.co...

2019-10-05 11:46:22

阅读数 6572

评论数 0

原创 关于privateTmp

以php-fpm为例,在配置文件php-fpm.conf中指定了将sock文件生成到/tmp/php-cgi.sock,但是当使用systemctl start php-fpm进行启动的时候,会发现.sock文件没有生成在/tmp/php-cgi.sock这个位置,而是在类似systemd-pri...

2019-10-05 11:41:41

阅读数 143

评论数 0

原创 CentOS7安装gitlab

1、安装依赖:yum -y install policycoreutils-python 2、下载安装包:wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.r...

2019-10-05 11:39:44

阅读数 6569

评论数 0

原创 Git 常用命令速查表

Git 常用命令速查表 创建版本库 $ git clone <url> #克隆远程版本库 $ git init #初始化本地版本库 修改和提交 $ git status ...

2019-10-05 11:31:44

阅读数 6392

评论数 0

原创 PHP7内核学习笔记 - 请求的生命周期

PHP的整个生命周期可以大致分为五个步骤: STEP1:模块初始化阶段(module init -&gt; php_module_startup) STEP2:请求初始化阶段(request init -&gt; php_request_startup) STEP3:脚本执行...

2018-11-07 13:31:23

阅读数 419

评论数 0

原创 PHP7内核学习笔记 - 内核结构

根据个人的理解,PHP内核结构可以大体分成SAPI + main + Zend + Ext + TSRM 其中SAPI是最外层的,其全称为Server abstraction API,它是PHP提供对外服务的规范,主要负责处理输入和输出。 它可以直接对接web服务器,如Apache、Ngi...

2018-11-06 14:40:35

阅读数 68

评论数 0

原创 记录DCOS中SSL证书的配置和调试过程

mesosphere已经基本搭建完成,安装了marathon-lb做请求分发,最后需要将所有的请求转为https处理。由于不准备做全局的证书,所以只能针对每个应用单独进行证书配置。 起初没在意marathon-lb,认为他只是简单的请求分发,SSL跟他无关,就在 应用的nginx中配置...

2018-11-03 16:48:35

阅读数 115

评论数 0

转载 使用vld查看OPCode

本文转载自:https://gywbd.github.io/posts/2016/2/vld-opcode.html 前几天翻译了一篇关于Zend引擎的文章,这篇文章主要是讲Zend引擎怎么执行PHP代码的,确切地说是怎么执行OPCode的,因为PHP程序会先被编译为中间形式(OPCode),然...

2018-11-02 11:24:35

阅读数 5072

评论数 0

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