自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 问答 (1)
  • 收藏
  • 关注

原创 redis中epoll事件怎样与读写回调函数绑定

epoll多路分离机制虽然以数组的形式返回所有激活事件的fd及属性(读写),但没有指定对每个事件的操作。事实上,如果需要读写不同激活的fd,只能根据fd、属性来再次判断自己操作的是哪一个事件。在读操作的执行函数一致、写操作的执行函数一致时,这种做法是可行的。但如果读或写操作属性的事件具有不同的执行函数,就不能单纯根据事件的属性决定执行函数了。为了解决这个问题,redis提供了读写回调函数与注册事件...

2019-06-19 09:36:48 1568 2

原创 redis的rehash工作原理

在redis中,键值以哈西表的方式进行存储,在键值对的数目比较多时,哈西值冲突的次数就会变多,这会降低检索效率。为了减少哈西表中的地址冲突次数,redis会增加键值空间,重新定义键值对的映射地址,也就是进行所谓的rehash。本文主要通过redis源码分析rehash原理。主要解决如下几个问题。1,redis中hash表的数据结构是怎样的?2,什么时候开始进行rehash?3,怎样为扩...

2019-06-18 09:38:44 6960

原创 redis客户端连接到服务器的步骤

看了大约3天的redis-cli了,是进行总结的时候了。和大多数客户端连接到服务器一样,redis-cli连接到服务器也主要分为两个阶段,请求连接阶段和数据传送阶段。具体来讲redis-cli做的事情有:1、以socket方式建立连接;2,选择相应的数据库;3,对客户端发送的命令进行编码;4,发送客户端编码的数据(write);5,接收服务器回应的数据(read);6,...

2019-05-20 17:39:25 5486 2

原创 redis下的字符串分割函数

在看redis-cli.c的时候,遇到了字符串分割函数sdssplitargs,我想不就是字符串分割函数吗,我也会写,我到要看看自己写的东西与标准有何不同。一个用C语言写的字符串分割函数需要考虑哪些问题呢?1,分割的字符串用啥存储呢?答案是二重指针,相当于一个字符串数组;2,使用啥函数解决从源字符串复制到新开辟的指针所指向的空间呢?strncpy;3,函数的逻辑问题?嗯,如果遇到‘...

2019-05-20 10:03:16 1327

原创 认识linenoise

在学习redis的client源码的过程中,遇到了linenoise这个函数,知道它是一个处理命令的工具,但它具体能做什么工作,怎样作这些工作还是不清楚。通过查看相关资料,对linenoise的功能及部分使用方法有了初步的认识,下面就让我介绍一下:1,linenoise是个处理指令的交互窗口在redis中,linenoise用在client中,就像是一个交互窗口,在这个窗口中,可以输入指令...

2019-05-18 16:32:02 1569

原创 C语言文件读写

在C语言中,文件的表示符号是整数型的,所以可以通过int定义文件。open可以通过open函数将具体的一个文件与文件描述符连接起来,其中read函数在fcntl.h中定义,如下:int open(const char *path, int oflag, ...);在使用open函数读写时,要首先确定文件的属性,比如后续操作文件时的属性(可写,可读,可追加,可创建)。还需要定义...

2019-01-02 20:31:05 2026

原创 Linux制作动态库

参考文章:https://www.cnblogs.com/jiqingwu/p/linux_dynamic_lib_create.html步骤:1,编写源文件2,编写接口文件3,生成动态库4,生成可执行文件5,添加可以执行文件运行库查找路径 一、编写源文件相当于函数定义int max(int n1, int n2, int n3){ int max...

2018-12-08 14:21:42 1151

原创 C++的异常检测方法(以文件读取为例)

关于C++的异常检测的关键字主要有3个,分别是throw,try,catch。它们的作用如下:throw用于抛出错误,throw invalid_argument("can't open file");try用于尝试执行含有抛出错误的代码;catch用于捕获对应类型的错误对象,catch (invalid_argument& e),由于包含在<stdexcept>中...

2018-12-06 10:00:41 6126

原创 按空格和按换行从文件中提取数据

1,读取文件的类为ifstream,其中“i”代表“in”,针对变量而言,ifstream所在的头文件为fstream;2,ifstream中有open方法,可以打开文件;3,ifstream中有&gt;&gt;方法,可以以空格为分割符,以换行为结束符读取数据;4,iostream中有getline(ifst, strline)方法,可以读取每一行的字符串数据。 以空格为分割符...

2018-12-05 16:18:46 2578

原创 通过pkg-config添加libs和include

首先介绍命令行编译C++项目的方法,指出其问题所在。g++的生成可执行文件语法:g++ -o test test.c -I/home/include -pthread -L/usr/local/lib -llog4cpp其中,1,-I后表示要搜索的头文件的路径,系统默认的搜索路径包括/usr/include、/usr/local/include。添加了/home/include后,...

2018-12-04 21:53:18 2591

原创 为对象动态分配内存

如果类中的数据成员含有指针变量,就需要为指针变量分配动态内存。(通常在编程中,应该尽量避免使用指针,应该用容器替代指针)在本例中,使用二重指针,可以视为一个二维数组,不过该数组的元素个数可变。如下为为指针分配空间的构造函数;//构造函数,创建一个可以指定长度和高度的二维数组SpreadSheet::SpreadSheet(int height, int length){ mCe...

2018-12-04 11:18:43 1775

原创 对象的复制和赋值

对象的复制是在对象声明时进行的操作,而赋值是在声明之后的操作。一般而言,复制的语法为A a(b),A为类,b为已经定义的对象,a为复制b的对象;赋值的语法为A a;a = b;需要先声明对象a,之后再对其进行赋值。有一种特殊的情况,A a=b;虽然是使用了操作符=,但由于是在对象声明时,进行定义,所以依然调用复制方法。下面代码为对象的复制和赋值操作。#include &lt;iost...

2018-12-03 19:40:34 1094

原创 对虚函数的认识

可以在继承类中重写父类的方法,关键字是virtual。如下代码所示,父类是Super,继承类是Sub,在Sub中,重写了Super的go()方法。#include &lt;iostream&gt;using namespace std;class Super{ public : virtual void go() { cout &lt;&lt; "go() ca...

2018-11-25 15:26:45 178

原创 strtok函数的使用

函数形式:#include <string.h>char *strtok(char *str, const char *delim);作用:根据某个定界附,将字符串分解成多个部分。方法: 第一次调用该函数时,输入为str,后面再调用该函数时,str为NULL。当分解完成后,函数返回NULL。一个分解字符串,并记录分解次数的例子:...

2018-06-13 11:36:42 2207

原创 字符串二重指针为什么需要动态分配空间

指针的概念:创建一个指针类型的数据,在64位系统中,一个指针类型的数据用8个字节表示。指针类型的数据存储某个数据的地址。编译器,可以根据指针地址处理该地址的数据。问题:字符串指针是指向字符串的指针,初始化字符串指针时,不需要为该字符串指针分配内存;而初始化字符串二重指针时,却需要用malloc为二重指针分配内存?一重字符串指针首先考虑字符串的存储模型,如下图所示。字符串变量s其实是存储...

2018-06-13 10:14:23 1899 2

原创 从一个加减法运算代码理解特殊运算符的重载

class wow(): def __init__(s,x): s.x = x def __add__(s,y): return wow(s.x+y.x) def __sub__(s,y): return wow(s.x-y.x) def __repr__(s): return str(s.x)a=wo

2017-11-29 15:55:15 380

空空如也

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

TA关注的人

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