自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zuoerfeng

愿做破土而出的蚂蚁,奔向蓝天。

  • 博客(89)
  • 资源 (1)
  • 收藏
  • 关注

原创 开篇博客

引言之前一直想写博客,没有什么时间,现在找完工作了,有了一段稍微空闲的时期,想着把自己之前的一些学习笔记和心得以博客的形式撰写出来,写博客的途中也可以回顾一下。博客主要是把自己之前有道云的笔记进行转录。PS:笔记中很多资料借鉴了网上的博客资料,本来打算附上原链接的,但是太多了难以找到,借鉴资料原创均来源于原作者。目录1.计算机基础知识(主要包括:操作系统、计算机网络、数据库)2.编程语...

2018-11-07 20:00:46 439 2

原创 通过brpc访问memecached

memcached是一种常见的缓存服务,之前开了一个专门的博客专栏用来讲解博客。在memecached中官网提供了client,C++的版本是libmemcached。这里我们想用brpc去替换到官方的libmemcached完成客户端client的访问,服务端的memcached当然还是一样的。1、brpc优势这里会给出相对于libmemcached,利用brpc写的client有以下的优...

2018-11-29 18:11:45 591

原创 brpc学习:ParallelChannel的使用

1、为什么要有parallel channel关于ParallelChannel的使用,首先需要知道parallelchannel实际是为了更好的并发编程使用brpc而提供的一套api。在之前的博客中已经提到了如何使用brpc完成同步、异步的并发操作。虽然它们能完成异步并发的操作,但是这类代码的多线程陷阱很多,用户可能写出了bug也不自知,复现和调试也比较困难。而且实现要么只能支持同步的情况,要...

2018-11-29 16:05:43 3165 1

转载 brpc学习:bvar

文章转载自:brpc学习:bvar一.介绍bvar是多线程环境下的计数器类库,方便记录和查看用户程序中的各类数值,它利用了thread local存储减少了cache bouncing,相比UbMonitor(百度内的老计数器库)几乎不会给程序增加性能开销,也快于竞争频繁的原子操作。brpc集成了bvar,http接口下的/vars可查看所有曝光的bvar,/vars/VARNAME可查阅某...

2018-11-29 15:27:20 829

原创 腾讯实习面筋

腾讯的面筋网上很多,这里整理了部分面筋,如下:面筋11.你如何处理线程池中线程的数量在这里就说一下“如何设定线程池中线程的数目?”线程池中线程的数目是跟线程池所要处理的任务性质有关的1.任务的性质:CPU密集型任务、IO密集型任务、混合型任务。2.任务的优先级:高、中、低。3.任务的执行时间:长、中、短。4.任务的依赖性:是否依赖其他系统资源,如数据库连接等。性质不同的任务可以交...

2018-11-28 14:05:56 2597

原创 阿里实习面筋

2018.3.23收集网上阿里面试相关题目:面筋11.第一题实现快速排序,第二题是实现一个同步控制,使用多线程打印abcabcabc2.很多区间求并集。合并两个有序链表比较快的方法3.给定一个升序整数数组a和整数x,返回a中>=x最左的位置,如果没有这样的数返回-1, 要求复杂度O(lgn)4.已知一个单链表中存在环,求进入环中的第一个节点思路两个指针,先用flyod判圈法让...

2018-11-28 11:12:04 319

原创 头条实习面筋

头条主要是手撕算法,这里收集了几篇头条的面筋。面筋1●算法题:○ 二叉树层序遍历(面试官提醒)○ JS的全排列(10分钟)● HTTP支持的方法○ GET和POST的区别● 301和302的区别● 如何避免301跳转https(在response中header)● TCP建立连接的三次握手过程● 操作系统进程和线程的区别● 线程的那些资源共享,那些资源不共享● 设计模式:...

2018-11-28 10:56:40 356

原创 网易互娱实习面筋

1. 拷贝构造函数自己定义拷贝构造函数,例如可能涉及到深拷贝浅拷贝的问题,初始化时候可以匹配到拷贝构造函数,没有设置系统会产生一个默认的拷贝构造函数2. 深拷贝、浅拷贝深拷贝,及拷贝内存的数据,浅拷贝,拷贝指针,或者是地址3. 智能指针每一个对象维护一个指针的计数器,赋值拷贝这些计数器会增加,当计数器减少到0的时候,会调用析构函数析构掉这个对象。4. extern c不同源文件中,...

2018-11-28 10:33:39 665

原创 brpc中同步、异步、半同步和取消操作

直接如题,从brpc开源的文档中看到brpc既支持同步调用,同时也支持异步调用。这里直接给出同步、异步的例子,同时对其进行分析。1、brpc同步调用brcp的同步调用是之前的echo的简单例子,所谓同步就是client对远端的server进行调用,同时自己原地等待,等待rpc返回之后,在进行之后的操作。代码如下:#include <iostream>#include <...

2018-11-27 21:20:10 7621 2

原创 STL容器的相关操作

————————————————————————————————————————————c++中关于容器的一些用法:顺序容器,表示数据可以顺序的访问,不依赖于数据存放的位置,而依赖于数据加入容器的顺序。主要有:1.vector2.string3.list4.queue5.priority_queue6.stack关联容器:按照关键字的顺序来保存,访问也是按照关键字进行的。...

2018-11-26 20:39:40 532

原创 在线测试输入输出语法的测试

在线输入输出语法的测试,要求将这些数存入到容器中————————————————————————————————————————————1.给出的行或者列输入的长度,eg:确定列个数键盘输入:n1 3 4 5 6代码:————————————————————————————————————————————eg:确定的行列数键盘输入:n m1 2 3 42 3 5 6...

2018-11-22 21:50:19 321

原创 手撕常见的数据结构的建立

用STL比较多,之前面试要现场手撕代码,简单总结了下手撕的常见数据结构,主要是链表和二叉树单向链表的建立:双向链表的建立二叉树的建立二叉树的遍历...

2018-11-22 21:44:55 360

转载 memcached和redis、fatcache的区别

2018.6.21前面分析了memcached的具体实现过程,下面了解下redis,fatcache和memcached的区别联系,为后面的分析做一个准备。这里主要是参考了一些博客的内容,原文链接找不到了。。。redis和memcached的区别(总结)观点一:1、Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等...

2018-11-22 21:32:59 430

原创 memcached的学习(15)

2018.6.21关于memcached的总结:参考博客:https://blog.csdn.net/initphp/article/details/44893869Memcache的网络模型1.Memcached主要是基于Libevent 网络事件库进行开发的。2.Memcached的网络模型分为两部分:主线程和工作线程。主线程主要用来接收客户端的连接信息;工作线程主要用来接管客户端连...

2018-11-22 21:29:10 153

原创 memcached的学习(14)

2018.6.21前面有说过memcached不是传统的malloc的方法来分配内存,而是使用slab的存储机制,下面来具体说明下这个slab的机制。Item 缓存数据存储的基本单元1.Item是Memcached存储的最小单位2.每一个缓存都会有自己的一个Item数据结构3.Item主要存储缓存的key、value、key的长度、value的长度、缓存的时间等信息。4.HashTa...

2018-11-22 21:22:55 152

原创 memcached的学习(13)

2018.6.21前面有提到过memcached使用的LRU是多段的LRU方法,对于每一个slab class都会匹配一个LRU方法,下面来具体分析下这种方法Memcached的LRU算法分析Memcached的LRU几种策略1.惰性删除。memcached一般不会主动去清除已经过期或者失效的缓存,当get请求一个item的时候,才会去检查item是否失效。2.flush命令。flu...

2018-11-22 21:17:19 139

原创 memcached的学习(12)

2018.6.20之前有了解过memecached为上层的应用客户端提供了几种最基本的操作,这些操作就是kv常见的增删改查操作,这些操作包装在对缓存操作的之上,即用户可以下发这几类操作,不同操作在memecached中对缓存进行不同的处理。这些处理也是调用LRU缓存替换算法的开始。1、首先给出memcached常见增删改查的命令集:增:set删:delete改:add/replace/...

2018-11-22 21:11:13 139

原创 brpc实现CS之间的心跳包

之前有一篇博客已经讲解了如何用protobuf+socket完成心跳包的具体过程,见 protobuf+socket实现CS之间的心跳包. 显然之前并没有用到所谓的rpc的调用功能,只是利用protobuf实现序列化的反序列化的功能。这几天,在学习了brpc开源提供的一些案例的时候,尝试着用brcp去实现cs之间的心跳包,具体的过程如下:brpc的开源例子见链接:https://github....

2018-11-21 20:02:35 1510 1

原创 socket,protobuf,rpc之间的理解

之前有篇博文讲解了prc和socket的区别,但是仅仅是从用户实现角度来判断的,这几天在学习了brpc之后,在这三者的层次上又有了更深刻的理解,这里对这三者的比较在做一个简单的小节。1、三者的定义socket套接字,与底层TCP/IP网络协议栈打交道的对象,直接利用socket进行通信的,类似传统的TCP/UDP的通信,这种通信是以数据流的形式进行交换的,也就是我们称为的二进制数据。那么当...

2018-11-21 19:16:54 2425

原创 memcached的学习(11)

2018.6.19今天来看memecached的缓存设置,前面学习的是memcached的网络模型,现在来讲一下memcached的缓存模型。今天来学习关于缓存模型的哈希表的结构。从这一章开始我们慢慢讲解Memcached是如何存储数据的。讲解本章前,我们先看一个Memcached存储数据的item的基本结构。数据结构 1. //item的具体结构 2. typedef str...

2018-11-21 13:22:42 174 2

原创 memcached的学习(10)

2018.6.14讲解Memcached如何从客户端读取命令,并且解析命令,然后处理命令并且向客户端回应消息。其中,Memcached是通过sendmsg函数向客户端发送数据的,这里我们具体分析Memcached回应消息的技术细节。右边对应了响应客户端需要准备好发送的数据结构,值得注意的是每次发送的是一个msghrd的结构体指向的缓存空间。这是一种多缓冲技术,也就是和之前我们说的发送缓冲区是...

2018-11-21 13:18:07 167

原创 memcached的学习(9)

2018.6.14之前学习了memcached的网络模型,主要是服务于多个客户端TCP连接的网络模型创建,也是CS架构上我们值得学习的一个模型,在设计网络模型的时候可以学习这种框架。今天来学习memcached的命令解析,也就是接收到了网络传来的数据包,按照不同的命令解析,并调用不同的功能模块。————————————————————————————————————————————我们回顾上...

2018-11-21 13:13:46 168

原创 memcached的学习(8)

2018.6.13接下来分析memecached服务端的源码分析,主要目的是了解其中的数据结构,以及缓冲区的替换算法这一部分。希望一步一步把memcached的代码看懂,找到了一篇参考博客,对memecached源码分析比较透彻,这里给出链接:https://blog.csdn.net/initphp/article/details/44893869同样,采用参考博客的目录,按照以下的目录进...

2018-11-21 13:06:39 174 2

转载 memcached的学习(7)

2018.6.13memcached客户端实现分布式的相关知识memcached的分布式正如第1次中介绍的那样, memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能。 服务器端仅包括 第2次、 第3次 前坂介绍的内存存储功能,其实现非常简单。 至于memcached的分布式,则是完全由客户端程序库实现的。 这种分布式是memcached的最大特点。memcach...

2018-11-21 12:53:59 143

转载 memcached的学习(6)

2018.6.13找到了一篇博客,全面解析memcached的知识点,主要从服务器端的内存原理,客户端的分布式原理,以及扩展方向来介绍的,下面对这几个方面做一个总结:1、理解memcached的内存存储我是mixi株式会社研究开发组的前坂徹。 上次的文章介绍了memcached是分布式的高速缓存服务器。 本次将介绍memcached的内部构造的实现方式,以及内存的管理方式。 另外,memca...

2018-11-21 11:16:03 148

原创 memcached的学习(5)

2018.6.12前面讲述了直接使用memcached命令的使用方法,这里使用库libmemcached客户端,如何使用其实现上面的这些命令操作,也就是libmemcached提供的API有哪些?具体的见官方文件:http://docs.libmemcached.org/libmemcached-1.0/memcached_touch.html下面对几个常见的API进行一个说明:1、说明...

2018-11-21 10:58:35 260

原创 memcached的学习(4)

2018.6.12memcached的常用操作,因为也是一个存储系统,有自己封装好的一套命令集来数据的存储查找。1、常见的命令分类:2、具体命令的学习说明见链接:http://www.runoob.com/memcached/memcached-set-data.html下面说明几个最常见的命令:————————————————————————————————————————————...

2018-11-20 12:21:06 126

转载 memcached的学习(3)

2018.6.12今天开始安装memcached的客户端,memcached服务器端不能互相通信,那么实际分布式的概念是由客户端来完成的,学习目的安装并了解客户端。1、基本了解memcached本身是一个集中式的内存缓存系统,对于分布式的支持服务端并没有实现,只有通过客户端实现;再者,memcached是基于TCP/UDP进行通信,只要客户端语言支持TCP/UDP即可实现客户端,并且可以根据...

2018-11-20 11:06:51 306

转载 memcached的学习(2)

2018.6.11今天主要看memecached服务器端的安装memcached两种安装方法,一种直接通过yum安装,一种通过源码安装,准备都尝试下这两种方法————————————————————————————————————————————第一种,通过yum进行安装Yum安装Memcache1.查找memcachedyum search memcached该命令可以查询...

2018-11-20 10:56:59 239

转载 memcached的学习(1)

2018.6.111、memcached是什么?memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为 mixi、 hatena、 Facebook、 Vox、LiveJournal等众多服务中 提高Web应用扩展性的重要因素。许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据...

2018-11-20 10:34:57 148

转载 google gflags 库完全使用

原文博客:https://blog.csdn.net/jcjc918/article/details/50876613简单介绍gflags 是 google 开源的用于处理命令行参数的项目。安装编译项目主页:gflags~ git clone https://github.com/gflags/gflags.git # 下载源码 ~ cd gflagsgflags git:(ma...

2018-11-19 17:19:15 1430

转载 RPC和socket的区别

转载博客:https://www.cnblogs.com/Leo_wl/p/8418929.htmlrpc是通过什么实现啊?socket!RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用).越底层,代码越复杂、灵活性越高、效率越高;越上层,抽...

2018-11-19 17:02:17 10689

转载 现有相关KV存储模型的介绍

参考博客:http://blog.jobbole.com/75842/本文中,开头我会解释使用现有模型而非重头开始此项目的原因。我会阐述一系列选择键值对存储模型的标准。最后我将对一些广为人知的键值对存储项目做一个概述,并用这些标准选择其中一些作为模型。本文将包含:1.不重新发明轮子2.备选模型和选择标准3.选择的键值对存储的概述4.参考文献1. 不重新发明轮子键值对存储已经被人们...

2018-11-19 15:19:56 1320

原创 KV存储相关基础知识

2018.6.11从今天开始研究存储里面键值系统的相关知识,存储介质提供一个存储体为生成,结合上次的存储服务,形成一个存储系统,我们最常见的存储系统就是文件系统,以文件的方式来在存储体上管理数据。同时也可以使用数据库,以数据库操作的形式来管理数据。同时还存在一种自己定义的方法,一般称为NoSQL的方式,即键值存储系统,来直接对存储体进行管理。这里我们具体学习下键值系统。主要从键值系统的基本理...

2018-11-19 15:13:20 13582 1

转载 Linux-动态链接与静态链接对比(动态库和静态库)

博客转载自:Linux-动态链接与静态链接对比一、库的基础概念:在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。通俗的说就是把这些常用函数的目标文件打包在一起,提供相应函数的接口,便于程序员使用。在使用函数时,只需要包对应的头文件即可。按照库的使用...

2018-11-15 21:54:38 6778 6

转载 CMake简介

这篇博客首先给出CMake与Make最简单直接的区别,然后给出在Centos 7上安装使用cmake的一个过程,以供参考。1、CMake与Make的区别写程序大体步骤为:1.用编辑器编写源代码,如.c文件。2.用编译器编译代码生成目标文件,如.o。3.用链接器连接目标代码生成可执行文件,如.exe。但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处...

2018-11-15 21:40:34 618

原创 brpc搭建、编译和使用

前面介绍了brpc的理解,这里给出brpc官方的搭建过程,以及提供的测试用例,对brpc的使用有一个宏观的理解。PS:这里必须再次称赞百度工程师门,brpc开源的文档非常的丰富,仅仅是看文档都受益匪浅,同时提供了各个系统,各个版本的安装编译过程,安装编译文档可以通过以下链接直接查看:https://github.com/brpc/brpc/blob/master/docs/cn/getting...

2018-11-15 21:31:26 8717

原创 初探brpc

今天开始对百度的这块开源项目进行学习,之前一直有听说,但是没有去尝试使用,下面就自己对brpc的学习心得进行一个总结。1、brpc的简介brpc又称为baidu-rpc,是百度开发一款“远过程调用”网络框架。目前该项目已在github上开源:https://github.com/brpc/brpc从开源的github上看,确实是很有水准的一款rpc,不仅是文档内容及其丰富,其中也提到了,br...

2018-11-15 21:08:23 3671 1

原创 protobuf+socket实现CS之间的心跳包

之前给出了都是google提供的一些样例,但是protobuf提供的是数据的序列化和反序列化,显然在cs架构中非常适用,适用protobuf可以大大减小编程者对于通信双方格式的定义与解析,只用关系用户的逻辑功能即可。下面拿一个简单的cs架构中双方心跳包的检测进行举例说明:1、定义protubuf心跳包的数据结构类型//Test.protopackage Test.protobuf ;//包...

2018-11-14 21:47:19 2479

原创 Protobuf使用实例

前面章节已经讲述了protobuf的理解,这里直接开门见山,给出一个实,来具体看下是如何使用的。本案例参考博客:google protobuf安装与使用案例的主要功能(google提供的基本案例)该程序示例的大致功能是,定义一个Persion结构体和存放Persion的AddressBook,然后一个写程序向一个文件写入该结构体信息,另一个程序从文件中读出该信息并打印到输出中。1.add...

2018-11-14 21:30:08 9244 2

2011年二级c语言真题详解

2011年二级c语言考试真题详解 flash动画 你值得拥有

2013-10-12

空空如也

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

TA关注的人

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