- 博客(23)
- 资源 (31)
- 收藏
- 关注
转载 应对程序员面试,你必须知道的八大数据结构
应对程序员面试,你必须知道的八大数据结构 https://tech.meituan.com/Redis_High_Concurrency_Optimization.html瑞士计算机科学家Niklaus Wirth在1976年写了一本书,名为《算法+数据结构=编程》。 40多年后,这个等式仍被奉为真理。这就是为什么在面试过程中,需要考察软件工程师对数据结构的理解。 ...
2018-08-24 10:15:33 191
转载 FileEvent
在了解整个事件驱动的模型前,有先了解一些定义的事件结构体,事件类型总共2个一个FileEvent,TimeEvent: /* File event structure */ /* 文件事件结构体 */ typedef struct aeFileEvent { //只为读事件或者写事件中的1种 int mask; /* one of AE...
2018-08-22 00:23:54 613
转载 Linux内存分配小结--malloc、brk、mmap
Linux内存分配小结--malloc、brk、mmap http://blog.163.com/xychenbaihu@yeah/blog/static/132229655201210975312473/http://blog.sina.com.cn/s/blog_7c60861501015vkk.htmlLinux 的虚拟内存管理有几个关键概念: 1、每个进程都有独立的虚拟...
2018-08-22 00:15:30 242
转载 我读过最好的Epoll模型讲解
我读过最好的Epoll模型讲解 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典...
2018-08-21 18:28:56 176
转载 操作系统学习笔记(一) 进程与线程模型
操作系统学习笔记(一) 进程与线程模型进程可以说是操作系统最为核心的一个抽象,而线程可以认为是一种轻量级的进程,或者说一个进程内的多个迷你进程。一、进程的模型进程(process):进程是一个正在运行的程序的实例。对于一个单核的处理器,每个时刻只能运行一个程序,但在每一个时间段,它可能运行多个进程,这样就产生了并行的错觉。从概念上说,每个进程拥有自己的虚拟CPU,好像它独占了CPU的...
2018-08-21 17:40:38 241
转载 Redis源码剖析和注释(十九)--- Redis 事件处理实现
Redis源码剖析和注释(十九)--- Redis 事件处理实现Redis 事件处理实现1. Redis事件介绍Redis服务器是一个事件驱动程序。下面先来简单介绍什么是事件驱动。所谓事件驱动,就是当你输入一条命令并且按下回车,然后消息被组装成Redis协议的格式发送给Redis服务器,这就会产生一个事件,Redis服务器会接收该命令,处理该命令和发送回复,而当你没有与服务器进行交互...
2018-08-21 15:29:06 209
转载 Redis官方文档》Redis事件库
Redis官方文档》Redis事件库原文链接 译者:cndpzchttp://ifeve.com/redis-eventlib/Redis实现了自己的事件库,代码在ae.c中。想要理解Redis事件库的工作原理,最好的方法就是去理解Redis如何使用它。事件循环初始化redis.c中的initServer函数初始化了redisServer结构体变量的众多成员,其中一个就是Redis...
2018-08-19 23:40:27 164
转载 回调函数
研究了一段时间回调函数,越看越迷惑,分析并改进了从网上看到的几篇好文,看过后有了自己的看法。我也不知道这些跌跌撞撞的认识是否符合回调的真实原理,若有大侠能帮解惑,自当感激不尽。下面的代码可以在Vs2008下编译并运行:所有的回调函数文章里,能让我一下看明白回调函数的就是这篇文章了,描述简单,一语中的:http://hi.baidu.com/zht7216/item/1dd32e82a68c...
2018-08-19 21:39:20 153
转载 服务器中判断客户端socket断开连接的方法
1, 如果服务端的Socket比客户端的Socket先关闭,会导致客户端出现TIME_WAIT状态,占用系统资源。所以,必须等客户端先关闭Socket后,服务器端再关闭Socket才能避免TIME_WAIT状态的出现。2, 在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。client端通过 ...
2018-08-19 20:33:27 862
转载 C++类型转换
首先说明一下,由于C用的比较多,所以以前一直用 (int)a这样的格式来进行强制转换,虽然这在C++下也是适用的,但是要编写一个纯粹的C++的代码,还是应该用int(a)这样的格式才对,呵呵。不过为了完成强制类型转换,C++中已经为我们提供了4中标准方法,它们是dynamic_cats, static_cast, const_cast, reinterpret_cast,用法形式为:dynam...
2018-08-19 20:30:18 127
转载 redis服务器是基于事件驱动机制实现的
redis服务器是基于事件驱动机制实现的。所谓事件驱动是指,根据发生的事件(比如点击鼠标)进行相应的处理。一般事件驱动程序由事件收集器,事件分发器,事件处理器三部分组成。事件收集器负责接收事件(包括来自用户的或软件硬件的事件),事件分发器负责将事件发送到相应的事件处理器程序,事件处理器则负责处理具体事件。redis中的事件有文件事件和时间事件两类。redis自己实现了一套事件驱动机制(类似l...
2018-08-19 19:54:30 308
转载 使用Visual Studio2012调试Redis源码
Redis是一款C语言编写Key-Value存储系统,基于BSD协议开放源码,其源码托管在github上,大概有三万行。源码地址:https://github.com/antirez/redis源码依赖于linux平台,采用GNU MAKE工具进行项目管理,而且官方没有提供Redis的Windows版本。作为源码的学习者,我们更希望使用集成开发工具来管理项目,这样代码的层次结构显得比较清晰...
2018-08-19 11:55:30 436
转载 aeFileProc
http://gosaturn.github.io/%E6%BA%90%E7%A0%81%E5%AD%A6%E4%B9%A0/2015/11/23/redis%E6%BA%90%E7%A0%81%E5%AD%A6%E4%B9%A0_%E4%BA%8B%E4%BB%B6/当客户端连接到服务器时,会调用acceptTcpHandler处理函数,服务器会为每个链接创建一个client对象,并创建相应...
2018-08-18 14:42:49 548
转载 【Linux学习】epoll详解
【Linux学习】epoll详解http://blog.csdn.net/xiajun07061225/article/details/9250579什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Lin...
2018-08-18 12:22:35 171
转载 STL容器类vector,list,deque的比较
STL容器类vector,list,deque的比较http://www.cppblog.com/sailing/articles/161659.html C++的STL模板库中提供了3种容器类:vector,list,deque对于这三种容器,在觉得好用的同时,经常会让我们困惑应该选择哪一种来实现我们的逻辑。在少量数据操作的程序中随便哪一种用起来感觉差别并不是很大,但是当数据达...
2018-08-18 10:42:55 182
转载 C语言函数参数传递
C语言函数参数传递1.值传递void swap(int x,int y){ int temp = x; x = y; y = temp;}void main(){ int a = 10, b = 20; swap(a, b);} 执行后,并不会交换。2.引用传递void swap(int &x,i...
2018-08-05 13:35:42 674
转载 堆和栈的区别
堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构...
2018-08-05 00:46:28 135
转载 ioctl
ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的参数个数如下:int ioctl(int fd, int cmd, …);其中fd就是用户程序打开设备时使用open函数返回的文件标示符,cmd就是用户程序对设备的控制命令,至于后面的省略号,那是一些补充参数,一般最多一个,有或没有是和cmd...
2018-08-05 00:33:59 261
转载 Linux编程——文件操作
Linux编程——文件操作 文件在Linux系统中是一个广泛的概念,Linux将所有的硬件设备当作文件来处理,因此了解文件操作是十分重要的。(一)文件和目录操作1.stat 获取文件属性 #include <sys/types.h> #include <sys/stat.h> #include <uni...
2018-08-04 23:58:42 244
转载 第三方支付架构设计之—帐户体系
第三方支付架构设计之—帐户体系 第三方支付架构设计之—帐户体系一, 什么是第三方支付? 什么是第三方支付?相信很多人对这个名字很熟悉,不管是从各种媒体等都经常听到,可以说是耳熟能熟。但,如果非得给这个名词总结出一个概念,却发现很难准确和全面的表述清楚。不过关系不大,我们无法给出一个很准确的概念的时候,我们就列举一下实际生活中我们经常使用第三方支付的例子:支付...
2018-08-03 15:45:54 359
转载 金融行业密钥详解
金融行业密钥详解金融行业因为对数据比较敏感,所以对数据的加密也相应的比较重视。在其中有关密钥及加密方面的文章很少,并且散发在各个银行及公司的手中,在网上没有专门对这部分进行介绍的。本文对金融行业的密钥进行较深入的介绍,包括象到底什么是主密钥(MasterKey)、传输密钥(MacKey),为什么我们需要这些东西等。本文采取追源溯本的方式,力求让对这感兴趣的人达到知其然,同时也知其所以然,而不...
2018-08-03 15:01:49 476
转载 Java多线程简析——Synchronized(同步锁)、Lock以及线程池
Java多线程简析——Synchronized(同步锁)、Lock以及线程池 Java多线程Java中,可运行的程序都是有一个或多个进程组成。进程则是由多个线程组成的。最简单的一个进程,会包括mian线程以及GC线程。线程的状态线程状态由以下一张网上图片来说明:在图中,红框标识的部分方法,可以认为已过时,不再使用。(1)wait、notify、notifyAll...
2018-08-03 13:53:43 250
转载 高并发服务器
高并发服务器 多进程并发服务器Apache服务器当accept时,fork一个子进程。子进程处理请求,父进程继续listen多线程并发服务器线程池并发服务器预先创建阻塞于accept的线程。客户端连接时。阻塞的线程都被唤醒(条件变量),竞争。只有一个线程去处理accept,其它线程继续阻塞。 设置一个主控线程,主控线程accept,再分配给任务线程。多路I/O转接服...
2018-08-01 22:35:06 353
中国银联银行卡联网联合技术规范V2.1-2014年6月发布版(境内卷及配套文档).rar
2020-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人