- 博客(3)
- 收藏
- 关注
原创 epoll的一些需要注意的地方
如果写成功,这时需要在事件中删除写事件的注册,因为如果不删除,在LT模式下会一直触发可写事件,而实际上需要写的数据已经写完。如果是EWOULDBLOCK,说明写缓存已满,这时需要继续写(如果是ET模式下则需要再次注册写事件,在可写的情况下继续尝试写入数据)。EPOLLIN->可读事件,需要调用read读缓冲区,这时如果读失败(返回值
2023-10-01 15:05:32
83
原创 设计模式笔记
责任链模式:功能流程的处理为一个顺序的链式结构,且每个节点都可能打断流程的执行,如nginx的http连接过程,如请假流程 部门->项目经理->老板,任何一个通过了都会终止后续流程。装饰器模式:需要组合多个类或接口的实现,比如工资需要计算 基本工资+绩效+奖金等,但其计算顺序并不是完全顺序的。工厂方法:主要用来生产对象,当对象生成比较复杂的时候可以使用工厂类生产,隐藏内部新建的细节。抽象工厂:抽象接口+抽象工厂。策略模式:算法流程的控制。
2023-09-30 12:58:03
34
原创 布隆过滤器
问题:1、hash偏移导致分布不均匀(哈希随机性+节点太少):增加虚拟节点,构建真实节点(ip:port:1)和虚拟节点(ip:port:2~n)的对应关系即可通过虚拟节点找到真实节点。使用位图可以帮助解决部分情况,在内存中预先设置位图,可以使用较小的开销来阻止一定不存在的数据访问请求。场景:通过哈希函数将数据映射到不同的终端上,如果直接使用hash(key) % n,则在添加新设备的同时也会出现修改哈希函数本身的情况。哈希函数:siphash解决字符串接近的强随机分布性(redis),多次哈希操作位图。
2023-09-29 16:11:38
36
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人