自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

翻译 redis对象模型

typeencoding一.字符串对象字符串对象如果保存的是整数值,编码为int。字符串对象如果保存的是长度大于32字节的字符串,编码为raw。字符串对象如果保存的是长度小于等于32字节的字符串,编码为embstr。embstr调用一次内存分配函数分配一块连续的空间存放redisObject和sdshdr。raw需要调用两次分别分配redisObject和sdshdr的内...

2019-05-20 23:20:23 137

原创 redis数据结构

以SDS(simple dynamic string)类型作为redis的字符串表示。SDS以空字符‘\0’结尾,占用一个字节。但不计入长度len中。C字符串本身不记录长度,获取长度需要遍历。SDS中记录了长度。空间预分配:SDS空间扩展时,会分配额外的未使用空间。如果len长度小于1M,那么分配与len相同长度的free。如果len长度大于等于1M,会分配1M的free。惰性空间释放...

2019-05-13 23:57:45 171

原创 http

http是超文本传输协议。TCP/IP协议族是互联网通信所有协议族总称。TCP/IP协议族分为4层:应用层/传输层/网络层/数据链路层应用层向用户提供应用服务时通信,例HTTP/FTP文件传输协议/DNS域名系统等。传输层提供计算机间的传输方式。TCP传输控制协议/UDP用户数据报协议。网络层规定传输路径。数据链路层为硬件连接部分。发送端用户数据在应用层生成HTTP报文。在传输层对H...

2019-05-10 22:19:39 142

原创 访问者模式

#include<iostream>class Visitor;class Animal{ public: virtual void accpt(Visitor& visitor)=0;}class Dog:public Animal{ public: void show(){ std::cout<<i am dog<<std:...

2019-05-06 23:28:36 104

原创 观察者模式

#include<iostream>#include<string>#include<vector>class Task{ public: Task(const std::string& content):content_(content){} void show(){ std::cout<<content_<&...

2019-05-06 20:00:06 86

原创 桥接模式

#include<iosteam>#include<string>class OS{ public: virtual void showOS()=0;}class LinuxOS:public OS{ public: void showOS override{ std::cout<<linux<<std::endl; ...

2019-05-06 18:06:43 130

原创 单例模式

#include<iostream>#include<string>class Singleton{ public: static Singleton& getInstance(){ static Singleton instance; return instance; } Singleton(const Singlenton&amp...

2019-05-06 17:29:56 83

原创 工厂模式

1.简单工厂class Product{ public: virtual void show()=0;}class ProductA:public Product{ public: void show(){ std::cout<<this is ProductA<<std::end; }}class ProductB:public Produ...

2019-05-06 17:14:27 94

原创 protobuf

protobuf是google旗下的一款平台无关,语言无关,可扩展的序列化结构数据格式。Protobuf 序列化后所生成的二进制消息非常紧凑,用一到多个字节表示数字,key-value,正负数表示交错。Protobuf 反序列化只需要将二进制序列按照格式读到对应的结构类型中。...

2019-05-04 23:45:14 74

原创 libevent简介

libevent是一个轻量级的基于事件驱动的开源高性能网络库。一.libevent http1.创建event_base和evhttpstruct event_base *event_init(void)struct evhttp *evhttp_new(struct event_base *base)2.绑定地址和端口int evhttp_bind_socket(struct evh...

2019-05-04 20:57:12 261

原创 快速排序

template<class Object>void quickSort(vector<Object> &a, int left, int right){ if(left+10<=right){ Object pivot; int i=left; int j=right-1; for(; ; ){ while(a[++i]<pi...

2019-05-02 20:20:20 90

原创 归并排序

template<class Object>void mergeSort(vector<Object> &a, vector<Object> &tmp; int left; int right){ if(left<right){ int center=(left+right)/2; mergeSort(a, tmp, left,...

2019-05-02 19:08:40 84

原创 堆排序

template<class Object>void heapSort(vector<Object> &a){ for(int i=a.size()/2-1; i>=0; --i){ perDown(a, i, a.size()); } for(int j=a.size()-1; j>0; --j){ std::swap(a[0],a[j...

2019-05-02 17:23:33 87

原创 希尔排序

template<class Object>void shellSort(vector<Object> &a){ for(int k=a.size()/2; k>0; k/=2){ for(int i=k; i<size(); ++i){ Object tmp=std::move(a[i]); for(int j=i; j>k ...

2019-05-02 09:39:12 260

原创 插入排序

templatevoid insertSort(vecter &a){for(int i=1; i<a.size(); ++i){Object tmp=std::move(a[i]);for(int j=i; j>0 && tmp<a[j-1]; --j){a[j]=std::move(a[j-1]);}a[j]=std::move(tmp)...

2019-05-01 11:08:28 90

原创 选择排序

template<class Object>void SelectSort(vector<Object> &a){ for(int i=0; i < a.size()-1; ++i){ int min=i; for(int j=i+1; j < a.size()-1; ++j){ if(a[j] < a[j+1]){ mi...

2019-05-01 10:55:09 75

原创 冒泡排序

template void BubbleSort(vector &a){for(int i=0;i < a.size()-1;++i){for(int j=0;j < a.size()-1-i;++j){if(a[j] > a[j+1]){std::swap(a[j],a[j+1]);}}}}

2019-05-01 10:45:22 110

原创 redis基础知识

1. redis介绍redis是一个key-value类型的内存数据库,整个数据库加载在内存中进行操作,定期通过异步操作把数据flush到硬盘上保存。redis是纯内存操作,性能出色,每秒可处理超10万次读写操作。而且支持多种数据结构。redis的缺点是受物理内存限制,不能作海量数据高性能读写。redis官网地址:https://redis.io2. redis存储结构1.strin...

2019-04-23 19:03:11 108

转载 Markdown使用指南

Markdown使用指南欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用...

2019-04-23 08:09:21 82

空空如也

空空如也

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

TA关注的人

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