2017年7月23日

红黑树

摘要: RT 阅读全文

posted @ 2017-07-23 21:47 koushr 阅读(684) 评论(0) 推荐(1)

LRU、LFU

摘要: 146、LRU缓存 Least recently used,最近最少使用。在put一个键值对,或者get一个现存的键值对时, 把这个键值对置为最近使用。 个人感觉难点在于置为最近使用。如果用数组或者链表或者队列存储键值对的key,那么置为最近使用,就是把这个key放到首。换句话说,需要选择一个合适的 阅读全文

posted @ 2017-07-23 02:11 koushr 阅读(1144) 评论(0) 推荐(0)

第五篇:滑动窗口算法及习题

摘要: 滑动窗口算法的基本思路是 搞2个指针,一个指针代表窗口的左边界,一个指针代表窗口的右边界。 先保持左指针不动,一直移动右指针,直到窗口不满足条件。此时把左指针往右移动一下,再次一直移动右指针,直到窗口不满足条件。直到右指针到最右侧为止。 leetcode题目: 1、无重复字符的最长子串。med 学习 阅读全文

posted @ 2017-07-23 01:11 koushr 阅读(350) 评论(0) 推荐(0)

2017年6月11日

rpc核心

摘要: 被面试官问过这样一个问题:“假如要你实现一个rpc框架,客户端和服务端你要考虑哪些东西?” rpc框架负责屏蔽底层的传输方式(tcp或者udp)、序列化方式(xml/json/二进制)和通信细节,服务调用者可以像调用本地接口一样调用远程服务,而不需要关心底层通信细节和调用过程。 rpc的组件一般有服 阅读全文

posted @ 2017-06-11 16:16 koushr 阅读(242) 评论(0) 推荐(0)

2017年5月24日

RPC简介

摘要: RPC(Remote Process Call Protocol),远程过程调用协议,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。 RPC采用客户机/服务器模式,请求程序就是一个客户机,而服 阅读全文

posted @ 2017-05-24 14:26 koushr 阅读(543) 评论(0) 推荐(0)

2017年5月14日

分布式一些概念

摘要: 分布式系统定义: 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 分布式系统一些典型的问题: 通信异常: 分布式系统需要在各个节点之间进行网络通信,因此每次网络通信都会伴随着网络不可用的风险,比如说光纤被挖断了。另外,即使分布式系统各节点之间的 阅读全文

posted @ 2017-05-14 00:50 koushr 阅读(374) 评论(0) 推荐(0)

2017年4月28日

树、二叉树、二叉搜索树、平衡二叉树、B树、B+树

摘要: 一、树 Tree 树是n个结点的有限集。n=0时称为空树。在任意一棵非空树中:①有且仅有一个根结点;②当n>1时,其余结点可分为m个互不相交的有限集,其中每一个集合本身又是一棵树,称为根的子树。 结点的分类 结点拥有的子树的个数称为结点的度。度为0的结点称为叶结点。度不为0的结点称为分支结点。分支结 阅读全文

posted @ 2017-04-28 11:12 koushr 阅读(680) 评论(0) 推荐(0)

2017年4月19日

单调栈和前缀和

摘要: 单调栈是指 前缀和是指 阅读全文

posted @ 2017-04-19 23:04 koushr 阅读(652) 评论(0) 推荐(0)

2017年4月17日

shell第四篇:

摘要: RT 阅读全文

posted @ 2017-04-17 23:38 koushr 阅读(574) 评论(0) 推荐(0)

2017年4月3日

kafka基本命令行使用

摘要: 1、查看kafka集群有哪些topic: kafka-topics.sh --list --bootstrap-server 172.17.16.4:9092 2、查看kafka集群所有topic分区及其副本情况: kafka-topics.sh --describe --bootstrap-ser 阅读全文

posted @ 2017-04-03 00:25 koushr 阅读(1014) 评论(0) 推荐(0)

2016年10月28日

小顶堆、大顶堆及习题

摘要: 力扣215、数组中的第K个最大元素 要求时间复杂度不高于O(n)。 阅读全文

posted @ 2016-10-28 14:23 koushr 阅读(234) 评论(0) 推荐(0)

2016年10月23日

git第三篇:CI/CD

摘要: 我们可以利用gitlab自带的CI/CD来让代码在提交后自动编译部署。 按以下步骤实施即可: 1、在项目根目录中新建.gitlab-ci.yml文件,内容示例如下: stages: - build - package - deploy go-build: image: golang:1.23.1-b 阅读全文

posted @ 2016-10-23 18:49 koushr 阅读(3940) 评论(0) 推荐(0)

2016年10月22日

linux5种IO模型

摘要: 1、阻塞式IO 2、非阻塞式IO 3、IO多路复用 4、信号驱动式IO 5、异步IO 阅读全文

posted @ 2016-10-22 20:22 koushr 阅读(256) 评论(0) 推荐(0)

2016年10月16日

nginx基础第三篇:长连接的设置

摘要: 考虑一个最常见的场景,client->nginx->upstream 1、client与nginx建立长连接,nginx需要如何配置? nginx默认与client保持长连接。 https://nginx.org/en/docs/http/ngx_http_core_module.html#keep 阅读全文

posted @ 2016-10-16 15:13 koushr 阅读(307) 评论(0) 推荐(0)

2016年9月22日

shell第三篇:

摘要: RT 阅读全文

posted @ 2016-09-22 15:48 koushr 阅读(737) 评论(0) 推荐(0)

2016年4月11日

tcp第二篇:四次挥手

摘要: 客户端和服务端都可能主动关闭连接。 第一步:主动方向被动方发送FIN,关闭主动方到被动方的数据传输,主动方进入FIN_WAIT_1状态。 第二步:被动方向主动方发送ACK,被动方进入CLOSE_WAIT状态,主动方进入FIN_WAIT_2状态。 第三步:被动方向主动方发送FIN,关闭被动方到主动方的 阅读全文

posted @ 2016-04-11 19:34 koushr 阅读(355) 评论(0) 推荐(0)

2016年3月23日

链表题目

摘要: 1、反转链表 2、K个一组反转链表 3、合并两个有序链表 阅读全文

posted @ 2016-03-23 23:49 koushr 阅读(507) 评论(0) 推荐(0)

2016年3月16日

nginx基础第三篇:location配置

摘要: 配置location root、alias nginx指定文件路径有root和alias两种方式,这两种方式的区别在于nginx如何解释location后面的uri。root的处理结果是root路径+location路径,alias的处理结果是使用alias路径替换location路径。root可用 阅读全文

posted @ 2016-03-16 20:00 koushr 阅读(1040) 评论(0) 推荐(0)

nginx第二篇:在日志中打印请求体和响应

摘要: nginx默认是不在access.log中打印请求体的,需要自定义配置。使用nginx自带的request_body变量即可,这样经proxy_pass转发的请求,就能在日志中打印出请求体了。但是中文会被转义,可以使用log_escape_non_ascii取消转义。但是请求体中的双引号会被转义成\ 阅读全文

posted @ 2016-03-16 15:38 koushr 阅读(459) 评论(0) 推荐(0)

2016年3月14日

用户态、内核态及零拷贝

摘要: 用户空间:user space。 内核空间:kernel space。 应用程序在访问磁盘文件时,会先利用DMA技术把文件内容读取到内核缓冲区,然后再把内容从内核缓冲区copy到用户缓冲区中。如果程序要输出,则会把用户缓冲区的内容再copy到内核的socket缓冲区中,利用DMA输出。以下是原理图: 阅读全文

posted @ 2016-03-14 17:57 koushr 阅读(1797) 评论(0) 推荐(0)

2016年3月12日

redis基础第一篇:pipeline、transaction

摘要: pipeline 如果想连续执行多个redis命令,且后面的命令不依赖于前面命令的结果,则可以把这些命令用pipeline包起来,从而只向redis服务器发起一次情求,在响应中获取所有命令的执行结果,这样可以节省请求响应的往返时间RTT,在应用服务器和redis服务器非局域网时效果尤其显著。 pip 阅读全文

posted @ 2016-03-12 00:43 koushr 阅读(172) 评论(0) 推荐(0)

2015年8月7日

布隆过滤器

摘要: 参考https://juejin.im/post/5de1e37c5188256e8e43adfc 什么是布隆过滤器? 布隆过滤器本质上是一个很长的位数组和一系列哈希函数。位数组元素一开始全是0。往布隆过滤器里放元素时,假如有n个哈希函数,则先用这n个哈希函数处理元素,得到n个数字,然后把数组对应索 阅读全文

posted @ 2015-08-07 19:27 koushr 阅读(267) 评论(0) 推荐(0)

ssh第一篇:ssh命令和SSH服务详解

摘要: https://www.cnblogs.com/f-ck-need-u/p/7129122.html 利用scp命令,在客户端A,把服务器B的一个文件拷贝到服务器C 传输到当前用户的根目录:scp -3 serverB:/etc/os-release serverC:,注意最后面的冒号不能省略,否则 阅读全文

posted @ 2015-08-07 17:41 koushr 阅读(211) 评论(0) 推荐(0)

nginx第一篇:各种坑

摘要: 1、在nginx配置跨域 关于跨域的讲解,阮一峰写的很好https://www.ruanyifeng.com/blog/2016/04/cors.html 在浏览器页面访问,跨域时,在控制台会有提示,如 Access to XMLHttpRequest at 'https://backend_dom 阅读全文

posted @ 2015-08-07 15:26 koushr 阅读(728) 评论(0) 推荐(0)

2015年7月25日

git第二篇:常用命令

摘要: git clone: 从远程主机克隆一个版本库:git clone <版本库地址> <本地目录名>。如git clone https://github.com/jquery/jquery.git。这将在本机生成一个jquery目录,因为远程主机的版本库名称是jquery。如果我们想指定不同的目录名, 阅读全文

posted @ 2015-07-25 15:28 koushr 阅读(316) 评论(0) 推荐(0)

2015年7月16日

git第一篇:git config

摘要: git config 有3种级别,local、global、system,优先级依次降低。 local表示仓库级别,对应的配置文件是仓库根目录的。global表示(操作系统)用户级别,对应的配置文件是当前用户根目录的。system表示git进程级别,对应的配置文件是。 查看所有配置: git con 阅读全文

posted @ 2015-07-16 18:48 koushr 阅读(308) 评论(0) 推荐(0)

导航