自定义博客皮肤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

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

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

原创 github 入门

2017.2.27github入门,开始对代码进行管理。1、基本功能介绍Repository是放项目的地方fork copy别人的项目clone 将项目资源下载到本地2、客户端使用步骤http://www.cnblogs.com/hellomagic/p/5237096.html3、非常不错的起步博客http://youngxhui.github.io/2016/05/03/...

2018-12-11 12:08:40 135

转载 大白话解释 Git 和 GitHub

转发原文:http://blog.jobbole.com/111187/本文旨在使用通俗易懂的文字,讲解版本控制背后的理论,以便你能对程序员们如何工作有个全局概念。本文不涉及代码,不用下载啥东西,循序渐进,不关注繁复细节,只有文字和一些不怎么漂亮的手绘涂鸦。写本文的动机学习任何东西都能在网络上找到如此之多的指导教程,这一直令我惊讶不已。Git 和 Github 也不例外,网络上有大量优秀资...

2018-12-11 11:52:47 255

原创 秋招面试经验总结

2018.7.19远算科技一面:手撕LRU算法二面:1、缓存替换算法有哪几种,指标是什么?2、FTL层是什么,作用是什么,为什么要这么做?3、现在有人说要去掉FTL层,为什么要去掉,有什么好处?还有什么弊端4、简单的说下专利的思想5、什么是预取,预取的大小如何控制,何时预取,预取的大小?预取操作性能指标是什么?6、对于一个顺序读的操作,预取的大小怎么控制?是否可以建立相应的模型?...

2018-12-11 11:35:51 1798

原创 秋招面经搜集总结

2018.7.23下面是个人在秋招过程中搜集的一些面经,分享出来如下:——————————————————————————————————————————————————————1.进程和线程的区别?(什么样资源在两个线程共享)——进程是资源分配的最小单位,线程是cpu调度的最小单元——一个进程有多个线程,多个线程可以并发执行——进程的创建退出操作系统为其分配资源,切换线程需要保存这些...

2018-12-10 21:15:02 1965

原创 位域

2018.7.23C 结构体位域位域 :有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 ...

2018-12-07 20:47:54 175

原创 leetcode回溯法总结

2018.7.30前文:回溯法和dfs是不一样的,回溯法有自己很独特的模板,dfs是一种思想,回溯法是dfs的一种实现。先来看回溯法的典型题型:Find a path to success 有没有解Find all paths to success 求所有解1.求所有解的个数 2. 求所有解的具体信息Find the best path to success 求最优解对应的三...

2018-12-07 20:39:51 347

原创 实习面筋总结

阿里一面:阿里面试完问了相关的问题:1.项目的介绍2.智力题给你一个数n,能否对它开方,不能用乘法3.计算机基础知识操作系统中,给进程分配的管理方式是怎么样的,给你一个4M的内存,怎么分配?操作系统中,内存的页级和段级管理方式,两者的区别操作系统中,如果给你一个二级页表,那么这个二级页表,可以减少多少的内存,怎么算?内存管理知识基本都考到了网络拥塞有了解过吗,分为哪几个部分滑...

2018-12-07 17:39:52 315

原创 深信服实习面筋

下面是实习面试过程中的一些总结:面经1一面:1.this指针调用成员函数时的压栈和相关寄存器使用?(从右往左调用,这个容易可以回答;在x86中,会将this指针放在寄存器ecx中,以便快速访问,对于寄存器方面,我完全没有了解)2.虚表的调用,以及单继承,多继承,菱形继承中虚表在对象内存中位置?是一个虚表还是多个虚表?(虚表调用就是类的首地址,然后查表,单继承是单表,多继承是多表)3.RT...

2018-12-07 17:30:40 1048

原创 58同城实习面筋

实习面试过程中总结的一些面经:面经11.一块内存分为几块一块内存在逻辑上分为用户空间和内核空间,用户空间通过虚拟技术为每个进程分配不同的逻辑空间,进程逻辑空间包括:代码段,数据段、未出化数据段bss,堆空间、栈空间,他们是通过段页式的管理方式映射到物理内存;内核空间则是通过线性平铺的方式映射物理内存。2. STL sort原理(内省排序,插入、快排、堆排,快排比堆排快,局部性原理)插入排...

2018-12-07 17:22:56 357

原创 美团实习面筋

实习面试过程中总结的一些面经。面筋11. 说一下二分查找二分查找,时间复杂度是lg(n),每次取二分的中间值,然后将查找区间缩小一半,直到最后找到查找值,从二叉树来表示的话,需要查找的次数就是一棵树的树深。n个节点的树,树深为lg(n)2. 二分查找的条件是什么条件是查找序列必须是有序的。3. 说一下平衡二叉树的概念平衡二叉树,又称为avltree,是搜索二叉树的一种改进,为了避免二...

2018-12-07 17:16:23 1001

原创 华为云memcached的搭建

这几天有时间在整brpc,准备用brpc写一个简单的memcached的客户端,区别于之前使用的libmemcaced。所以先得搭建memcached,之前本来有搭建好的,但是服务器后面重装做其他的去了,所以想着就用云主机吧。蹭着华为云新手可以免费领取一个月的memcached,所以选择使用华为云,试着搭建看看。官网链接如下:https://support.huaweicloud.com/us...

2018-12-05 20:11:51 386

原创 通过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 3168 1

转载 brpc学习:bvar

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

2018-11-29 15:27:20 830

原创 腾讯实习面筋

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

2018-11-28 14:05:56 2601

原创 阿里实习面筋

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

2018-11-28 11:12:04 320

原创 头条实习面筋

头条主要是手撕算法,这里收集了几篇头条的面筋。面筋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 7627 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 362

转载 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 2426

原创 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 261

原创 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 242

转载 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

2011年二级c语言真题详解

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

2013-10-12

空空如也

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

TA关注的人

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