- 博客(73)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【MYSQL】mysql.sock连接问题
mysql.sock连接问题second60 20200705在mysql中,有两种连接方式: tcp, sock.Sock 是unix原生套接字,速度比tcp的快, 所以不指定ip, 端口时,会当作本地连接,也就是会使用 mysql.sock连接。mysql服务器在启动时,会生成一个unix套接字,名为mysql.sock. 默认目录在:/var/lib/mysql/mysql.sock.mysql服务器启动时会读取默认配置文件my.cnf.在我们的服务器安装目...
2020-07-05 08:50:20
2045
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [redis]redis中的pipeline
redis中的pipelinesecond60 201811011 单操作命令分析单操作命令操作时间 = 1次网络往返 + 1次命令执行假如一次get key,那么是单次操作 2 批量操作命令分析如果我们要得到n个key, 如果循环调用get,那么循环操作单次命令时间= n次网络往返+ n次命令执行.为此,redis中提供了批量操作的命令,如mget, m...
2018-11-01 20:18:45
2764
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [框架]缓存设计
[框架]缓存设计second60 20181031目录[框架]缓存设计1 . 缓存层目的1.1缓存能够加速读写速度1.2 降低后端负载3 缓存的使用场景3.1 加速请求响应,减少查数据库时间,优化高并发3.2 开销大的复杂计算分离3.3 通用缓存4 缓存更新策略4.1 LRU/LFU/FIFO算法剔除4.2 超时删除4.3 主动更新4....
2018-10-31 20:14:20
984
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [linux]防火墙配置
linux防火墙配置second60 20181030 1.配置文件路径: /etc/sysconfig/iptables内容:# sample configuration for iptables service# you can edit this manually or use system-config-firewall# please do not ask...
2018-10-30 16:38:18
725
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [性能优化]-CPU与上下文切换
目录[性能优化]-CPU与上下文切换1 说说进程上下文2 上下文切换3 进程上下文切换与性能优化4 进程和线程-上下文切换区别5 线程上下文切换与性能优化6 总结[性能优化]-CPU与上下文切换second60 20180802 1 说说进程上下文经常可以看到不同代码里都有这么一个单词:context,中文翻译:上下文或环境。在内核的CPU调度中...
2018-08-02 17:19:23
3442
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [性能优化]-linux内存体系结构
目录 [性能优化]-linux内存体系结构1.说说linux内存分类2.内存是怎么管理的?3. 物理内存的分页技术3.1 什么是分页技术3.1.1 页帧的分配3.1.2 进程分配内存3.1.3 linux物理地址空间布局3.1.4 linux虚拟地址内核空间分布3.1.5 linux虚拟地址用户空间分布3.1.6 linux虚拟地址与物理地址映射关系...
2018-08-02 15:12:25
827
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [性能优化] - cpu调度原理
目录 [性能优化] - cpu调度原理1 背景2 基本概念3 CPU调度程度3.2 O(1)调度程序3.3完全公平调度程序CFS4 CPU与性能优化5 总结[性能优化] - cpu调度原理second60 20180801 1 背景linux系统是一个多任务实时操作系统。这里的多任务就CPU调度的任务。在linux操作系统中,CPU是并不...
2018-08-01 18:13:00
3406
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [性能优化] - linux 虚拟文件系统
目录[性能优化] - linux 虚拟文件系统0 背景1 兼容不同文件系统2 高速磁盘缓存2.1缓存分为三类3 文件延迟写技术3.1 数据刷入磁盘条件4 free命令4.1 Mem物理内存4.2 应用程序的内存使用4.3 交换内存swap5 性能优化5.1系统参数调优5.2 应用程序性能优化6 总结[性能优化] - linux 虚拟文...
2018-08-01 13:25:51
411
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [框架]高并发中的惊群效应
高并发中的惊群效应second60 20180726目录高并发中的惊群效应1.惊群效应简介2. 操作系统的惊群3. 惊群的坏处3.1 坏处3.2 其他4 惊群的几种情况4.1 accept惊群(新版内核已解决)4.2 epoll惊群4.2.1 fork之前创建epollfd(新版内核已解决)4.2.2 fork之后创建epollfd(内核未解决)...
2018-07-27 18:06:01
25900
7
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 epoll本质原理
epoll本质原理second60 201806221. epoll简介 epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。2. epoll优点1. 支持一个进程打开大数目的socket描述符(1) 查最大支持描述符: cat /p...
2018-06-22 15:34:47
555
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [源码分析]-轻量级JSON-cJson
[源码分析]-轻量级JSON-cJsonsecond60 201806121. cJSON简介cJson是个轻量级的C语言JSON库,速度快,而且代码少,只有两个文件:cJSON.h和cJSON.c。代码只有七百多行。 使用只需引入cJSON文件,一起编译即可,使用了数学库,要添加-lm库g++ test.c cJSON.c -o testgcc test.c cJSON.c -o test -l...
2018-06-12 17:12:25
1835
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 源码分析-简洁的HTTPServer-tinyhttpd
源码分析-简洁的HTTPServersecond60 201806101. tinyhttpd 简介tinyhttpd 可以说是最小最精简的HTTP服务器,C语言编写,全部代码只有五百多行。通过阅读tinyhttpd源码可以了解HTTP服务器搭建的本质和HTTP基础。下载链接:http://sourceforge.net/projects/tinyhttpd/2. tinyhttpd 安装和使用...
2018-06-10 22:27:36
1366
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [源码分析] 性能压测工具-webbench
[源码分析] 性能压测工具-webbenchsecond60 201806091. webbench简介今天和大家介绍一个网站压测性能测试工具,名字叫webbench。 a) 可测试相同硬件,不同服务的性能及不同硬件上同一个服务的运行状况。b) 可以向我们展示服务器:每秒钟相应的请求数和每秒钟传输数据量。c) 可以模拟3万个并发连接去测试网站的负载能力。 同时,webbench的代码非常精简,源...
2018-06-09 23:27:23
300
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]行为模式-解释器(C++描述)
[设计模式]行为模式-解释器(C++描述)second60 201806081. 解释器模式定义给定一个语言,定义它的文法的一种表示,并定义一个解释器来解释语言中的句子。2. 解释器模式结构图 分析:1. 抽象表达式AbstractExpression: 声明一个所有具体表达式的抽象类,有个抽象方解释方法interpret().2. TerminalExpression终结符表达式:实现了抽象...
2018-06-09 00:47:06
235
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]行为模式-迭代器(C++描述)
[设计模式]行为模式-迭代器(C++描述)second60 201806051. 迭代器模式定义迭代器,作为学C++的人,应该都接触过迭代器。在STL的每个容器中,都会对应有个迭代器。迭代器的目的很简单,就是用来遍历用的。 定义:顺序访问集合对象的元素,不需要知道集合对象的底层表示。2. 迭代器模式结构图 分析:1. 聚合类父类Aggregate:也可以说是容器类父类,里面存放的是某种结构的容器...
2018-06-06 23:50:54
168
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]行为模式-责任链(C++描述)
[设计模式]行为模式-责任链(C++描述)second60 201806051. 责任链模式定义在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。 即可能处理一个请求的对象链接成一个链,并将请求在...
2018-06-05 07:34:32
243
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]行为模式-访问者(C++描述)
[设计模式]行为模式-访问者(C++描述)second60 201806031. 访问者模式定义访问者模式:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。 将数据结构和数据操作分离的设计模式。2. 访问者模式结构图 分析:Vistor抽象访问者角色:为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识请求给具体访问者...
2018-06-04 06:13:36
248
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]行为模式-命令模式(C++描述)
[设计模式]行为模式-命令模式(C++描述)second60 201806011. 命令模式定义命令模式通过将请求封装到一个commond对象中,并将请求的接受者存放到receiver中, 从而实现调用操作的对象和操作的具体实现者之间的解耦。 命令模式又称为动作模式或事务模式。 通常情况下,消息封装好后直接调用处理接口,这是直接调用。而命令模式把消息封装和消息调用两者分离,两者之间不用关心对方,...
2018-06-01 14:56:03
247
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 strcmp函数实现(c语言)
strcmp函数实现(c语言)second60 20180601#include <stdio.h>int strcmp_new(const char* src, const char* dst){ int ret = 0; while( !(ret = *(unsigned char*)src - *(unsigned char*)dst) && ...
2018-06-01 07:43:59
15282
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 strstr函数实现(C语言)
strstr函数实现(C语言)second60 20180601 strstr 用来字符串查找子串。 顺便说一下, 字符串操作函数是C语言中非常重要的函数,里面包括了指针的精华,同时对学习数据结构,如链表,数组,有非常好的练手方法。同时,知道内部实现,是基础中的基础。所以学习字符串操作函数是深入学C的必经之路。#include <stdio.h>#...
2018-06-01 07:27:57
21978
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]行为模式-中介者(C++描述)
[设计模式]行为模式-中介者(C++描述)second60 201805311. 中介者定义中介者模式提供对象间的交互和通讯封装在一个类中,各个对象间的通信不必显势去声明和引用,大大降低了系统的复杂性。 在面向对象的软件设计与开发过程中,根据单一职责原则,尽量将对象细化,使其只负责或呈现单一的职责,将行为分布到各个对象中。 对于一个模块或系统,可能由很多对象构成,而且这些对象之间存在相互的引用,...
2018-05-31 10:11:29
516
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 strlen函数实现(c语言)
strlen函数实现(c语言)second60 20180530#include <stdio.h>#include <assert.h>int strlen_new(const char* src){ int len = 0; assert(src); while(*src++ != '\0') len ++; re...
2018-05-30 07:44:48
10134
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 memcpy函数实现(c语言)
memcpy函数实现(c语言)second60 20180530#include <stdio.h>#include <assert.h>void *memcpy_new(void *to, void *from, size_t size){ char *tempFrom = NULL; char *tempTo = NULL; asse...
2018-05-30 07:24:34
804
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 strcpy函数实现(C语言)
strcpy函数实现(C语言)second60 20180530#include <stdio.h>char* strcpy(char *strDest, const char* strSrc){ char *p=NULL; if(strDest == NULL || strSrc == NULL) { return NULL; }...
2018-05-30 07:12:27
28105
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 字符串转整型(C语言)
字符串转整型(C语言)second60 20180529#include <stdio.h>int str2int(const char* str){ int temp = 0; const char* p = str; if(str == NULL) return 0; if(*str == '-' || *str == '+') { ...
2018-05-29 22:41:34
2788
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 整型转字符串(C语言)
整型转字符串实现(C语言)second60 20180529#include <stdio.h>// n <2的32次数,所以最大10位// n 可能为负数,也可能为正数void int2str(int n, char *str){ char buf[10] = ""; int i = 0; int len = 0; // temp为n的绝...
2018-05-29 07:46:11
5633
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]行为模式-备忘录(C++描述)
[设计模式]行为模式-备忘录(C++描述)second60 201805151. 备忘录定义官方定义:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。也可以将对象恢复到原先保存的状态。也称快照模式。 2. 备忘录结构图 分析:1. Originator: 发起人记录当前时刻的内部状态,负责创建和恢复备忘录数据。2. Menento: 备忘录,负责存储发起人对象内部状态3...
2018-05-15 14:42:05
220
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [redis源码注释]-字典
[redis源码注释]-字典second60 201805151. 字典源文件头文件:dict.hC文件:dict.c2. 字典结构定义在C++STL中,字典是采用红黑树实现的,但在redis中,作者是采用二维链表的方式实现字典的。2.1 哈希表节点typedef struct dictEntry { // 键-void* 支持任何类型 void *key; // 值 ...
2018-05-15 00:51:07
245
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]行为模式-观察者(C++描述)
[设计模式]行为模式-观察者(C++描述)second60 201805141. 什么是观察者模式打个比方,一个表演者在台上表演,台下有很多观众在观看。当台上的表演者,每做一个动作,台下的观众都可以看到。这里的观众就是观察者。 定义对象间一对多的依赖,当(表演者)一个对象状态改变时,所有依赖它的对象(观众)都得到通知并更新。 观察都模式解决的问题:建立一个Subect对多个Observer的依赖...
2018-05-14 17:15:23
174
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [redis源码注释]-双向链表
[redis源码注释]-双向链表second60 201805111. 双向链表源文件头文件:adlist.hC文件:adlist.c 2. 双向链表结构定义2.1 链表节点typedef struct listNode{struct listNode * prev;struct listNode * next;void * value;}listNode;分析:这是一个标准的双...
2018-05-12 00:10:37
277
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [redis源码注释]-动态字符串
[redis源码注释]-动态字符串second60 20180511 动态字符串文件: sds.h sds.c在此,参考了 黄健宏老师 的redis源码的基础上添加了额外的注释。感谢黄健宏老师的分享,后面的源码注释都是在,老师的基础上分析。动态字符串分析:1. 在看源码中,个人觉得最重要的就是sdshdr的定义。 sdshdr定义了三上字段:len - 实际使用字符串的长度,free - ...
2018-05-11 04:56:14
371
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [redis源码注释]-内存分配
[redis源码注释]-内存分配second60 20180510内存分配文件,主要包括两个文件: zmalloc.h zmalloc.czmalloc.h#ifndef __ZMALLOC_H#define __ZMALLOC_H/* Double expansion needed for stringification of macro values. */#define __xst...
2018-05-10 01:48:01
278
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [redis源码注释]-简述
[redis源码注释]-简述second60 201805101 站在巨人的肩膀上有些人会问:学习一门技术最快的方法是什么?答案很简单:就是站在巨人的肩膀上,多看多多抄多练。第一:可以省去我们造轮子,四处碰壁的时间第二:可以学习巨人的精髓,使自已能力不断的提升第三:多抄,可以使自已写代码的风格像巨人一样,如火纯青 这篇文件不讲技术,纯属非技术分享哈~~ 学习源码和阅读别人的博客是比较好的方法,也是...
2018-05-10 01:41:45
444
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]行为模式-状态模式(C++描述)
[设计模式]行为模式-状态模式(C++描述)second60 201805091. 什么是状态模式对于一些人或事特,会有不同状态,而一个状态会在不同的表现下转移到下一个状态。通常情况下,我们可能写个if..else语句进行判断,或switch语句进行判断,但是当状态越来越多时,代码将变得不可维护,可读性和扩展性变得很差。同时,状态逻辑和动作逻辑没有分离。而状态模式正是解决这样的问题。状态模式,使...
2018-05-09 01:58:54
288
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]行为模式-策略模式(C++描述)
[设计模式]行为模式-策略模式(C++描述)second60 201805071. 什么是策略模式回顾下上节,模板方法是把业务逻辑的具体实现和抽象接口之间解耦,是通过子类继承父类的方法来实现,并把算法的流程封装到抽象类中。所以这样就导致了模板方法继承的强约束性,即如查新加一个流程,必须修改抽象接口,同时在子类中添加实现方法。改动非常大。 策略模式,是采用组合的方式实现了模板方法的功能,即具体实现...
2018-05-08 10:14:09
125
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]行为模式-模板方法(C++描述)
[设计模式]行为模式-模板方法(C++描述)second60 201805041. 什么是模板方法定义一个操作中算法的骨架,而将一些步骤延迟到子类中实现,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。 简单地说:完成一件事情,有些步骤相同,有些步骤不相同,在父类中定义模板方法,写好具体流程,但具体的实现是在子类中。 2. 模板方法结构图 分析:模板方法类:实现了模板方法,...
2018-05-05 00:23:19
224
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]结构模式-代理模式(C++描述)
[设计模式]结构模式-代理模式(C++描述)second60 201805041. 什么是代理模式代理模式,从字面上就可以这样理解,我想做某件事,但我不是直接找做事的人,而是找代理,代理再帮我找人做。 代理模式:为其他对象提供一种代理以控制对这个对象的访部。 2. 代理模式结构图 分析:抽象角色:通过接口或抽象类声明真实角色实现的业务方法。代理角色:实现抽象类,是真实角色的代理真实角色:实现抽象...
2018-05-04 00:45:29
137
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]结构模式-外观模式(C++描述)
[设计模式]结构模式-外观模式(C++描述)1. 什么是外观模式外观模式为子系统中的各类提供了一个统一简明的外观,隐藏了子系统的复杂性,使子系统更加容易使用。 简单地说:把多个类进行统一,组合成新接口,供上层使用。如:A类,B类,C类,对于客户来说,并不需要知道他们在哪,客户只需知道新类D,通过D能调用到A,B,C类的功能。 在实际开发中,外观模式运用非常广泛。 2. 外观模式结构图 分析:子系...
2018-05-04 00:14:52
218
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]结构模式-轻量级模式(C++描述)
[设计模式]结构模式-轻量级模式(C++描述)second60 20180502 1. 什么是轻量级模式通常情况下,一个系统有很多细粒度对象,造成了很大的存储开销。 轻量级模式,又称享元模式,运用共享技术有效地支持大量细粒度对象的复用。即系统只使用少量的对象,这些对象很相似,状态变化很小,可以实现对象的多次复用。轻量级模式共享的关键是区分了内部状态和外部状态。概念内部状态:存储有享元对象内部并且不...
2018-05-03 00:37:47
365
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [设计模式]结构模式-组合模式(C++描述)
[设计模式]结构模式-组合模式(C++描述)second60 201805021. 组合模式组合模式,将对象组合成树形结构以表示”部份”和”整体”的层次的结构。也叫“整体-部份“模式。组合模式使得用户对单个对象和组合对象的使用具有一致性。 部分 --- 整体 1.1优点1. 解耦了客户程序与复杂元素内部结构2. 让客户端像修改配置文件一样简单来完成本来需要流程控制语句来完成的功能。 1.2场景1...
2018-05-02 23:43:28
143
memcached1.5.8
2018-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人