杂
涛涛酱
北邮研究僧在读
展开
-
设计短网址系统
链接:https://www.zhihu.com/question/29270034/answer/46446911自增策略通过发号,给每一个过来的长地址,发一个号即可,小型系统直接用mysql的自增索引就搞定了。如果是大型应用,可以考虑各种分布式key-value系统做发号器。不停的自增就行了。第一个使用这个服务的人得到的短地址是http://xx.xx/0 第二个是 http://xx.xx/1 第11个是 http://xx.xx/a 第依次往后,相当于实现了一个62进制的自增字段即可。几个子问转载 2020-10-07 17:39:05 · 248 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩原因及措施
缓存穿透缓存穿透指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且,如果从存储层查不到数据,则不写入缓存。这导致这个不存在的数据每次请求都要到存储层查询,失去了缓存的意义。在流量大时,DB可能就挂掉了。解决方案布隆过滤器,将所有可能存在的数据哈希到一个bitmap中,一个一定不存在的数据会被bitmap拦截掉,从而避免对底层系统的查询压力。如果一个查询返回的数据为空,仍然把这个空结果缓存,但过期时间会很短,最长不超过五分钟。缓存雪崩缓存雪崩是指在我们在设置缓存时采用了相同的过期时间转载 2020-10-06 11:59:03 · 173 阅读 · 0 评论 -
最大连接数
client最大tcp连接数client每次发起tcp连接请求时,除非绑定端口,通常会让系统选取一个空闲的本地端口(local port),该端口是独占的,不能和其他tcp连接共享。tcp端口的数据类型是unsigned short(2字节),因此本地端口个数最大只有65536,端口0有特殊含义,不能使用,这样可用端口最多只有65535,所以在全部作为client端的情况下,最大tcp连接数为65535,这些连接可以连到不同的server ip。server最大tcp连接数server通常固定在某个本原创 2020-10-05 17:31:15 · 1596 阅读 · 0 评论 -
二维数组按行和按列遍历效率
按行遍历效率高。链接:https://blog.csdn.net/lbwo001/article/details/78817439原创 2020-09-14 11:24:47 · 454 阅读 · 0 评论 -
编译和解释的区别
编译是将源程序翻译成可执行的目标代码,翻译与执行是分开的;而解释是对源程序的翻译与执行一次性完成,不生成可存储的目标代码。这只是表象,二者背后的最大区别是:对解释执行而言,程序运行时的控制权在解释器而不在用户程序;对编译执行而言,运行时的控制权在用户程序。编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快。而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的。...原创 2020-09-07 21:03:08 · 1695 阅读 · 0 评论 -
分布式系统的CAP理论
Consistency 一致性Availability 可用性Partition Tolerance分区容错性原创 2020-09-02 17:02:39 · 84 阅读 · 0 评论 -
vim 语法高亮配置
全是无区别白色字符太恐怖了。虽然这个配色方案看上去也不是那么好看。。。但是好多了!!!whereis vimls -l /usr/share/vim/vim74/colorstouch .vimrchttps://www.cnblogs.com/Lucky-qin2013/p/6171090.html...原创 2019-07-20 11:34:24 · 126 阅读 · 0 评论