【XML协议】轻松掌握使用C++ XML解析库——pugixml 文章介绍了XML的结构组成,以及开源C++ XML解析库pugixml如何使用。解释了pugixml库中结构是如何与xml对应起来的。总结了如何快速掌握和回忆起pugixml库的常用操作。
redis过期键删除策略 redis是内存型数据库,需要处理好过期键来保证过期策略和内存可控。对于设置了过期时间的键,会在db->expires中存储该键对应的过期时间戳。过期键删除策略是定期删除和惰性删除相结合的策略。惰性删除是指访问到该键时校验是否过期,过期执行删除。对于周期删除,为保证定期删除可控,严格控制每次定期删除时遍历db数量、采样键数量、执行时间等指标。定期删除提供了fast模式,该模式下会放宽执行时间和遍历的db数。通过这两种方式,来处理redis的过期键,保证过期逻辑和内存可控。
Redis后台任务有哪些 redis 针对大文件关闭、大内存释放、刷盘这些操作,分别使用对应的后台线程防止其阻塞线上请求,保证线上请求的高性能。其实现方式比较清晰,每种后台任务对应一个链表实现的消费队列和一个后台线程作为消费者,前台请求只需要通过提交函数向队列中追加待执行任务即可
【提升服务影响速度】高性能string库-stringzilla 文章介绍了stringzilla开源库的基本使用和实现思路。该库2023年下半年开源,目前已经获得2000+star,作者使用SIMD做字符串常见操作的加速,支持多个指令集和多种语言,提升字符串常用操作执行速度近10倍。提供简洁的使用方式,能够以较小改造成本提升服务表现。
C++ 基于多态的插件式开发 插件基类定义了所有插件需要上报的一些基础信息和插件类型。kUnknown, // 未知类型kCodec, // 编解码插件kConfig, // 配置读写组件kCache, // 缓存组件kNaming, // 寻址组件public:我们定义了一个缓存类插件,包含一些基础的读写接口,所有缓存插件必须实现这些功能public:// 对于缓存组件我们规定以下几个动作:// Init:初始化// Destry:回收资源// Set:写缓存// Get:读缓存。
AC自动机原理及其在query意图理解中的应用 文章介绍了AC自动机(aho corasick)的基本原理,包括如何构建前缀树和如何连接失配指针。接着给出了一般基础的实现,最后介绍了其在query理解中的敏感信息识别、黑名单、槽位提取中的应用
代码随想录-二叉树 中序遍历与前序遍历不同的点在于push_back val的时机,前序遍历时第一次碰到的就是中节点,直接push_back。而中序遍历是在遍历完所有左节点之后,访问到的节点认为是目标值节点。非迭代的普通写法中需要注意右节点重复的情况。