
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
摘要:本文介绍了Protocol Buffers中修改message结构的注意事项。主要包含:1)禁止修改已有字段编号,避免反序列化问题;2)删除字段时应使用reserved保留编号;3)某些数据类型相互兼容的规则;4)oneof类型修改的安全方式;5)Proto3.5+版本对未知字段的处理机制;6)前后兼容性概念;7)optimize_for选项的三种优化级别及其影响;8)枚举类型中allow_

Redis采用定期删除、惰性删除和内存淘汰三种策略管理过期键。定期删除每100毫秒随机扫描部分键删除过期项;惰性删除在访问键时检查并删除过期键;内存不足时触发淘汰策略(如LRU、随机删除等)。三策略配合使用:前两者日常清理,内存不足时先尝试定期删除,若仍不足则执行淘汰策略。Redis未采用定时器管理过期键,因其单线程设计考虑效率。理论上可用优先级队列或时间轮实现定时器,但存在延迟问题,与惰性删除配

本文介绍了Redis的几种特殊数据类型及其操作:1. Stream类型:消息队列实现,是List的升级版本。2. Geospatial:存储和查询地理位置坐标数据,支持范围搜索。3. HyperLogLog:高效统计UV,仅用12KB空间即可统计上亿数据,但有0.81%误差。4. Bitmap:针对整数的特化SET类型,可进行位操作。5. Bitfield:针对整数的位域操作。还介绍了渐进式遍历S

UDP是一种无连接的传输层协议,具有简单高效但不可靠的特点。它不保证数据的有序性和可靠性,适合传输少量数据。UDP采用数据报传输方式,每个数据报独立传输,报头包含源/目的端口号、长度和校验和字段。其16位长度字段限制单次传输最大64KB数据。UDP没有发送缓冲区,只有接收缓冲区,且无法保证接收顺序。基于UDP实现的协议包括DNS、DHCP等。UDP通过校验和确保数据完整性,但不保证传输成功。在编程

本文介绍了C++11标准中的多线程编程相关库,包括thread线程库、mutex互斥锁、condition_variable条件变量和atomic原子操作库。重点讲解了thread线程对象的构造方法、线程参数传递方式(ref、指针、lambda捕获)以及join/detach资源回收机制;mutex的四种类型(普通锁、递归锁、定时锁)及其使用方法;atomic原子操作解决线程安全问题的高效方案;c









