什么是LFU LFU Least frequently used, 基于访问的频次和时间来淘汰数据。比如缓存满了,使用LFU算法,可以淘汰掉访问频次最少且访问时间靠后的元素。 leetcode也有相应的题目,只要实现Get, Put接口即可。 本文除了实现Get, Put, 还实现了GetItera ...
分类:
编程语言 时间:
2021-03-15 11:36:50
阅读次数:
0
装饰器的应用 一:实现一个cache装饰器,实现可过期被清除的功能 简化设计,函数的形参定义不包含可变位置参数、可变关键字参数和keyword_only参数, 可以不考虑缓存满了之后的换出问题。 数据类型的选择 缓存的应用场景,是有数据需要频繁查询,且每次查询都需要大量计算或者等待时间之后才能返回结 ...
分类:
其他好文 时间:
2019-12-10 15:26:35
阅读次数:
87
TCP面向字节流 打个比方比喻TCP,你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子、矿泉水瓶、锅碗瓢盆)接水。 上面的例子中,往水池里倒几次水和接几次水是没有必然联系的,也就是说你可以只倒一次水,然后分10次接完。另外,水池里的水 ...
分类:
其他好文 时间:
2019-12-01 16:54:26
阅读次数:
181
在近期学习计算机网络的过程中,由于知识点过于零散,琐碎,从而学习起来痛苦不堪,此贴只是总结了基于传输层的TCP协议相关的知识细节,并加入一点自己的理解,并无创新,若有理解不当之处,敬请提出,感谢! 首先过一下流水账,在计算机网络中,对于网络传输有七层模型,或者TCP/IP四层模型等等,那么先基于TC ...
分类:
其他好文 时间:
2019-09-11 13:57:32
阅读次数:
66
``` python package main import ( "encoding/csv" "fmt" "os" ) func main() { file, err := os.OpenFile("111.csv", os.O_CREATE|os.O_RDWR, 0644) if err != ... ...
分类:
其他好文 时间:
2019-08-20 12:57:32
阅读次数:
111
TCP下粘包问题 两种情况下会发生粘包。 1、发送端需要等缓冲区满才发送出去,造成粘包(发送数据时间间隔很短,数据了很小,会合到一起,产生粘包) 发送方:AB #其实放在缓存里没发送 发送方:B #其实放在缓存里没发送 发送方:CD #缓存满了,发一波 接收方:ABBCD #及时从缓存里接收信息,我 ...
分类:
其他好文 时间:
2018-10-11 18:41:17
阅读次数:
202
1.TCP粘包:Tcp是面向连接、流式传送的,没有明确的边界定义。他有一个缓冲区,每过一段时间或者缓存满了就发送出去,造成一次发送的数据可能是多个包或者包的一部分,这就是发送端的粘包。接收端的粘包指应用程序没有及时处理缓冲区中的数据,后续到达的数据继续放到缓存中。 解决方法: a.对发送的数据划分边 ...
分类:
其他好文 时间:
2018-09-03 17:20:12
阅读次数:
256
1. FIFO -- 先进先出 如果一个数据最先进入缓存中,则应该最早淘汰掉。也就是说,当缓存满的时候,应当把最先进入缓存的数据给淘汰掉。 实现: 利用一个双向链表保存数据,当来了新的数据之后便添加到链表末尾,如果Cache存满数据,则把链表头部数据删除,然后把新的数据添加到链表末尾。在访问数据的时 ...
分类:
编程语言 时间:
2018-08-26 22:02:03
阅读次数:
177
public static void main(String[] args) throws Exception { //读取文件 InputStreamReader isr = new InputStreamReader(new FileInputStream("C:\\\\Users\\\\Adm... ...
分类:
其他好文 时间:
2018-06-24 17:55:30
阅读次数:
175
装饰器应用练习一、实现一个cache装饰器,实现可过期被清除的功能简化设计,函数的形参定义不包含可变位置参数、可变关键词参数和keyword-only参数可以不考虑缓存满了之后的换出问题1)原始defcache(fn):importinspectlocal_cache={}defwrapper(*args,**kwargs):sig=inspect.signature(fn)params=sig.
分类:
编程语言 时间:
2018-04-25 18:53:21
阅读次数:
261