- 博客(20)
- 收藏
- 关注
原创 Redis事件
Redis事件Redis服务器是一个事件驱动程序,服务器要处理以下两类事件:文件事件Redis服务器通过套接字与客户端连接,而文件事件就是服务器对套接字的操作的抽象。时间事件Redis服务器中一些操作(比如serverCron函数)需要在给定的时间点执行,而时间事件就是服务器对这类定时操作的抽象。文件事件参考文献《redis设计与实现》...
2019-09-09 16:42:43
149
原创 go语言range关键字
go特殊关键字range,配合for迭代切片// 创建一个整型切片// 其长度和容量都是 4 个元素slice := []int{10, 20, 30, 40}// 迭代每一个元素,并显示其值for index, value := range slice { fmt.Printf("Index: %d Value: %d\n", index, value)}/*******...
2019-09-07 17:34:25
248
原创 redis的持久化
RDB持久化概念RDB持久化是将redis在内存中的数据库状态保存到磁盘上,避免数据意外丢失。RDB持久化既可以手动执行,也可以根据服务器配置项定期执行,该功能将某个时间点上的数据库状态保存到一个RDB文件中。RDB持久化生成的文件是一个压缩的二进制文件,通过该文件可以还原生成RDB文件时的数据库状态。RDB文件的创建和载入生成RDB文件的命令有两个一个是SAVE,另一个是BGSAVE...
2019-09-07 15:13:37
142
原创 golang锁详解
go语言中的锁分为互斥锁、读写锁、原子锁即原子操作互斥锁概念go语言中的互斥锁是由标准源码包sync中的Mutex结构体表示的,sync.Mutex只对外公开了两个指针方法Lock()和Unlock(),前者用于锁定互斥变量,后者用于互斥变量的解锁。并且由于go语言中defer语法糖的出现,使得我们不用担心加锁后会忘记解锁。对于同一互斥变量的锁定操作和解锁操作是成对出现的,如锁定了一个已锁...
2019-09-03 08:46:19
1106
原创 go源码解读(二)
test文件夹下的235.go// Solve the 2,3,5 problem (print all numbers with 2, 3, or 5 as factor) using channels.使用通道解决2,3,5问题(以2、3或5为因子打印所有数字)。// Test the solution, silently.测试解决方案。代码package maintype T...
2019-06-09 12:25:55
201
原创 关于golang 导入包的下划线和点的区别
包前是下划线_当导入一个包时,该包下的文件里所有init函数都会被执行,但是有时我们仅仅需要使用init函数而已并不希望把整个包导入(不使用包里的其他函数)包前是点.这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调用的fmt.Println(“hello world”)可以省略的写成Println(“hello world”)...
2019-06-06 16:52:40
172
原创 Nginx服务器
Nginx 服务器的特点更快正常情况下,单次请求会得到更快的响应在高峰期,nginx可以比其他web服务器响应更快。高扩展性Nginx的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成。因此,当对某一个模块修复Bug或进行升级时,可以专注于模块自身,无须在意其他。而且在HTTP模块中,还设计了HTTP过滤器模块:一个正常HTTP模块在处理完请求后,会有...
2019-05-29 22:30:23
132
原创 HTTP总结
HTTP报文用于HTTP协议交互的信息被称为HTTP报文。请求端(客户端)的HTTP报文叫请求报文,响应端(服务器端)的叫做响应报文。HTTP报文本身是由多行数据构成的字符串文本。返回结果的HTTP状态码HTTP状态码负责返回用户端HTTP请求的返回结果,标记服务器端的处理是否正常,通知出现错误的结果等工作。状态码类别类别原因短语1XXInformational(...
2019-05-02 16:58:26
138
原创 go 语言切片slice
概念Slice代表边长的序列,序列中的每个元素的类型都想同。可以通过对切片再次切片来缩小一个切片的大小,因为切片的底层内存也是在连续块中分配,所以切片还能获得索引,迭代以及为垃圾回收优化的好处。切片的创建make//创建一个字符串切片//其长度和容量都为5slice := make([]string,5)//创建一个整数切片//其长度为3容量为5slice := make([...
2019-04-29 16:31:01
151
原创 树的实现(go语言实现)
树的定义树是n个结点的有限集,它或空树;或为非空树,对于非空树T:(1)有且仅有一个称为根的结点;(2)除根结点以外的其余结点可分m(m>0)个互不相交的有限集,其中每一个集合本身又是一棵树,并称为根的子树。树的基本术语结点 :树的一个独立单元。结点的度:结点拥有的子树数称为结点度的最大值。树的度:树的度是树内各结点度的最大值。树的深度:树中结点的最大次称为树的深度或高度。...
2019-03-16 21:38:01
1402
原创 优先级调度算法和高响应比优先调度算法
优先级调度算法(PSA)优先级调度算法是基于作业的紧迫程度,由外部赋予作业相应的优先级,调度算法是根据该优先级进行调度的。这样就可以保证紧迫性作业优先运行。高响应比优先调度算法(HRRN)高响应比优先调度算法则是既考虑了作业等待的时间,又考虑了作业运行时间的调度算法,因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机的调度能力。算法实现优先权的变化规律:优先权= (等...
2019-03-12 11:10:55
11081
原创 先来先服务(FCFS)和短作业优先(SJF)调度算法
先来先服务调度算法FCFS是最简单的调度算法,该算法即可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它是优先考虑在系统中等待时间长的作业,而不管该作业所需执行时间的长短,从后备作业队列中选择几个最优先进入该队列的作业,将它们调入内存,为他们分配资源和进程。然后把他放入就绪队列。FCFS算法在单处理机系统中已经很少作为主调度算法,但经...
2019-03-12 10:42:12
4441
原创 线性表的链式表示(go语言实现)
单链表的定义和表示特点:用一组任意的存储单元储存线性表的数据元素(这组储存单元可以是连续的,也可以是不连续的)。所以一个单链表的节点包括两个部分即两个域:其中储存数据元素的域称为数据域;储存直接后继储存位置的域称为指针域。由于此链表的每个节点中只包含一个指针域,故又称为线性链表或单链表。首元节点首元节点是指链表中存储的第一个数据元素a1的节点。头节点头节点是首元节点之前附设的一个节点,其...
2019-03-09 22:24:10
187
原创 线性表的顺序表示 (go语言实现)
概念线性表的顺序表示指的是用一组地址连续的储存单元依次储存线性表的数据元素,这种表示也称作线性表的顺序存储结构或顺序。通常,称这种存储结构的线性为顺序表。特点,逻辑上相邻的数据元素,其物理性质也相邻的。每一元素的储存位置都和线性表的起始位置相差一个常数,这个常数和数据元素在线性表中的位序成正比。由此,只要确定了存储线性表的起始位置,线性表的任一元素都可随机存取,所以线性表的顺序存储结构是一种随...
2019-03-09 19:58:07
364
原创 go语言实现搜索插入位置(二分查找)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4代码:package main...
2019-03-04 20:51:40
337
原创 php 中new self()和new static()的区别
new static()是在PHP5.3版本中引入的新特性。 无论是new static()还是new self(),都是new了一个新的对象。 这两个方法new出来的对象有什么区别呢,说白了就是new出来的到底是同一个类实例还是不同的类实例呢?为了探究上面的问题,我们先上一段简单的代码 class Father { public function getNewFather(...
2019-02-13 15:27:09
154
原创 beego项目如何在apache服务器上部署
本篇博客是基于Linux系统编写的首先打开项目目录cd cd go/src/achievement/执行编辑命令go build main.go或者bee run此时目录中会生成一个二进制文件这个时候如果只想执行一个执行./achievement会发先项目也可以执行 但是我们部署的工程往往希望在后台一直运行,这时侯如果刚才的已经执行了./ac...
2019-02-12 10:45:54
1188
原创 Laravel debugbar 开发调试使用
1). 使用 Composer 安装该扩展包:composer require barryvdh/laravel-debugbar2). 安装完成后,修改 config/app.php 在 providers 数组内追加 Debugbar 的 Provider'providers' => [ ... Barryvdh\Debugbar\ServiceProvi...
2018-09-19 10:28:00
856
原创 windows上Apache错误调试命令
相信很多朋友对apache服务器出错之后,找错误很头疼。并且更可恶的是有一些错误,在服务日志上还不显示,这可就尴尬了。 在这里无分享一条调试错误的神奇命令:httpd.exe -w -n "Apache2.4" -k start首先你要将目录调整到你的Apache的bin目录下,然后输入httpd.exe -w -n "Apache2.4" -k start错误会定位到某...
2018-07-31 10:38:49
434
原创 php设计模式之工厂模式
设计模式起源在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念。什么...
2018-04-29 14:36:05
168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人