05 2018 档案

摘要:1、为什么使用redis(高性能、高并发) 一、高性能,直接从内存中操作,性能远大于操作db。因为db读取的是磁盘上的文件,一般是机械运动,特别慢。 二、高并发,因为mysql有链接数量上限,超出了就会挂了。而redis不存在这个问题,为什么呢?因为redis使用的是epoll,而mysql使用的是 阅读全文
posted @ 2018-05-29 19:16 ExitQuit 阅读(446) 评论(0) 推荐(0)
摘要:调用访问一个https接口特别慢,有什么好的定位问题思路吗? 1、同样一个请求,在开发机上调用是200ms左右返回,永远正常。 在线上服务器偶尔返回特别慢,有段时间200ms,有段时间2s,有段时间10s... 2、试过将域名换成ip调用,仍然出现以上问题。 3、开发机和线上服务器的/etc/sys 阅读全文
posted @ 2018-05-26 01:24 ExitQuit 阅读(204) 评论(0) 推荐(0)
摘要:命令: 1、kill -HUP pid 从容重启nginx,也用于重新加载配置文件。2、nginx -s reload 同13、nginx -s stop 停止运行 一、多进程模型VS单进程模型 单进程优点: 用于调试,方便 多进程优点: 1、高性能,充分利用cpu资源。 2、进程之间互相不影响,一 阅读全文
posted @ 2018-05-24 20:59 ExitQuit 阅读(1133) 评论(0) 推荐(0)
摘要:这几天在搞小程序涉及到登陆。 然后想起了很早以前自己看的一篇文章。 《干掉状态:从session到token》链接:http://weixin.niurenqushi.com/article/2017-03-20/4794863.html 该文提出了以下几点观点:1、session是有状态的,每次登 阅读全文
posted @ 2018-05-24 18:49 ExitQuit 阅读(288) 评论(0) 推荐(0)
摘要:Future就是保存我们任务的完成信息,比如说,任务中会通过返回某些东西告诉别人它已经结束了,而Future中就保存了这种信息。 阅读全文
posted @ 2018-05-17 20:38 ExitQuit 阅读(462) 评论(0) 推荐(0)
摘要:内存对齐: 原理:https://blog.csdn.net/fengbangyue/article/details/6531455 通俗解释下吧,假设对于 xxxx xxxx xxxx xxxx xxxx xxxx xxxx x100 调整到4的边界上。那么我对这个数字加3,将会导致一下效果: 其 阅读全文
posted @ 2018-05-16 17:16 ExitQuit 阅读(544) 评论(0) 推荐(0)
摘要:今天读代码时候,看到这样的代码。。 1、对于带有if 语句的宏,无论是内核还是开源代码,都是用到了do while(0)技巧。问题来了,为什么要这样搞呢? 很简单,假设存在 如果这里没有do while,那么是不是后面的else语句匹配出错了呢???? 导致的效果是:编译能通过,但是执行出错。 2、 阅读全文
posted @ 2018-05-16 17:14 ExitQuit 阅读(1577) 评论(0) 推荐(0)
摘要:为什么要3次握手?假设存在以下过程: 其实呢,最开始两步,是因为通信的双方要互相通知对方自己的初始化的Sequence Number(缩写为ISN:Inital Sequence Number)——所以叫SYN。 引申的问题有以下三个: 为什么要4次挥手? 理论上完全可以做到3次挥手。Server完 阅读全文
posted @ 2018-05-13 16:55 ExitQuit 阅读(149) 评论(0) 推荐(0)
摘要:问题:怎么提高if语句性能?分支预测又是什么?C/C++ 分支预测(likely unlikely),原理是很么? 原理:执行时候,分两步, 1、将指令(多条,因为这样更快)从内存搞到高速缓存。 2、开始执行指令。 因此分支预测可以让程序员告诉编译器, x == 3 很大概率不出现,让最后才生成 x 阅读全文
posted @ 2018-05-13 16:46 ExitQuit 阅读(297) 评论(0) 推荐(0)
摘要:1、Read uncommitted 未提交 脏读 2、Read committed 读提交 怎么解决脏读问题?很简单,就是只读提交了的数据,但是这样会造成问题就是【不可重复读】,一个事务范围内两个相同的查询却返回了不同数据。原因是事务在执行过程中另外的事务对数据进行了update。。。 3、Rep 阅读全文
posted @ 2018-05-13 16:43 ExitQuit 阅读(168) 评论(0) 推荐(0)
摘要:又来更新剑指offer上的题目思路啦。 11、【二进制中1的个数】 题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路:每次都将数字n的最后一位1反转成0,不断反转到这个数字变成0,然后我们统计反转了多少次,这样不就可以成功得到这个数字有多少位了吗? 难点:如何反转一个数字 阅读全文
posted @ 2018-05-13 13:54 ExitQuit 阅读(189) 评论(0) 推荐(0)
摘要:直接贴代码吧。。。没啥好说的。。。 阅读全文
posted @ 2018-05-11 10:28 ExitQuit 阅读(364) 评论(0) 推荐(0)
摘要:memcached Vs redis:1、基于libevent==>代码庞大==>最大同时连接数为200(线程)/比较慢==>redis实现了自己的网络库,用的epoll。2、memcached是2003搞出来的==>数据结构比较少 >Redis数据结构比较多。3、memcached内存不够用时== 阅读全文
posted @ 2018-05-10 17:25 ExitQuit 阅读(137) 评论(0) 推荐(0)
摘要:1、【二维有序数组查找】 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 方案肯定是要用O(n)级别的,如果是O(N^2),那么还就是暴力破解。这样根本就没有利用到题目的性质 》二 阅读全文
posted @ 2018-05-07 10:57 ExitQuit 阅读(243) 评论(0) 推荐(0)
摘要:还是拿背包问题来分析吧,假设有N个背包,现在我们要对这个N个背包排列。。输出所有情况 那么有: 生动点形容整个场景,存在N个人 第一步,在这N个人中找一个人轮流坐在第一个位置上 第二步,在这N-1个人中找一个人轮流坐在第一个位置上 第一个位置已经固定人了 第三步,在这N-2个人中找一个人轮流坐在第一 阅读全文
posted @ 2018-05-04 19:28 ExitQuit 阅读(306) 评论(0) 推荐(0)
摘要:最近上班上到脑袋都晕,,,突然想到要复习一下。就搞了个子集树的代码。。 其实子集树有点像暴力破解,大名鼎鼎的0-1规划中的背包问题一样。假设有N个背包,对应N个元素。 那么有: 然后要、不要分别对两种情况,好比二叉树的左子树和右子树一样。 子集树写法也参考了背包问题,遍历N个背包,分别决定要不要该背 阅读全文
posted @ 2018-05-04 19:05 ExitQuit 阅读(799) 评论(0) 推荐(0)
摘要:思路: 假设存在两个栈stack1、stack2,可以这样认为: stack2中保存的为【队列的前部分元素】,可以认为 其栈顶值 = 队列头部值。 stack1中的元素为【未经转换的队列后部分元素】,相当于buffer一样的存在,它其实就是队列中后部分元素逆序的结果。因此需要将其元素全部投入到sta 阅读全文
posted @ 2018-05-02 08:43 ExitQuit 阅读(208) 评论(0) 推荐(0)
摘要:思路很简单,只是用到分治法思想。核心是找出左右子树所在的数组。 阅读全文
posted @ 2018-05-02 08:32 ExitQuit 阅读(210) 评论(0) 推荐(0)
摘要:方法一用vector,时间复杂度空间复杂度都是O(N),比较简单,忽略。 方法二,使用递归,空间复杂度和时间复杂度也是O(N)。 阅读全文
posted @ 2018-05-01 17:36 ExitQuit 阅读(137) 评论(0) 推荐(0)