- 博客(212)
- 收藏
- 关注
原创 protobuf介绍与快速上手
摘要:Protobuf是Google开发的跨语言、跨平台的序列化工具,相比XML/JSON更高效、更紧凑。使用流程包括:1) 编写.proto文件定义数据结构;2) 用protoc编译器生成接口代码;3) 在程序中调用生成的接口进行序列化/反序列化操作。示例展示了如何定义个人信息结构并实现序列化传输,其优势在于自动生成代码简化开发,同时保持向后兼容性。Protobuf支持多种标量数据类型,适合网络传输和数据存储场景。
2026-01-25 20:11:31
1126
原创 spdlog: 高性能C++日志库
spdlog: 高性能C++日志库 spdlog是一个专为C++设计的高性能日志库,具有零配置、跨平台和丰富的功能特性。它支持多种日志输出方式,包括控制台输出、文件记录和循环文件存储,同时提供异步日志记录功能以减少对主线程的影响。 主要特性包括: 极高性能,专为高负载场景优化 简单易用的API,支持多种日志级别 灵活的日志格式化选项 线程安全设计 跨平台支持(Windows/Linux/macOS) 使用示例展示了如何配置日志输出到控制台、文件以及实现循环文件记录。特别功能包括flush_on()用于控制日
2026-01-23 23:11:52
663
原创 Redis中的List列表
Redis列表(List)是一种有序的字符串集合,支持在两端插入(push)和弹出(pop)元素,最多可存储2^32-1个元素。常用命令包括:LPUSH/RPUSH(头插/尾插元素)、LPOP/RPOP(头删/尾删元素)、LRANGE(获取指定范围元素)、LINDEX(获取指定位置元素)、LINSERT(在特定位置插入元素)和LLEN(获取列表长度)。此外还提供阻塞版本的BLPOP/BRPOP命令,当列表为空时会阻塞等待元素。列表数据结构灵活,既可作为栈也可作为队列使用,在实际开发中有广泛应用场景。
2026-01-22 19:43:06
680
原创 Redis中的Hash哈希
Redis哈希类型是一种键值对结构,其中值本身也是字段-值的映射关系。常用命令包括HSET(设置字段值)、HGET(获取字段值)、HDEL(删除字段)、HGETALL(获取所有字段和值)等。哈希内部编码会根据数据大小自动选择压缩列表(ziplist/listpack)或哈希表(hashtable)存储。压缩列表适用于小数据量,能节省内存;大数据量时则使用哈希表保证O(1)的读写性能。Redis 7.0开始用listpack替代了ziplist作为默认紧凑编码格式。
2026-01-21 19:33:37
651
原创 Redis中的string字符串介绍
Redis字符串类型是基础数据类型,支持存储文本、数字及二进制数据,最大512MB。所有键都是字符串类型,Redis不处理字符编码问题。常用命令包括: SET:设置键值,支持NX/XX选项和过期时间 GET/MGET:获取单个或多个键值 MSET:批量设置键值 计数命令:INCR/DECR系列实现数值增减 APPEND:字符串追加 特殊功能包括原子计数和批量操作优化网络通信,但需注意单次操作不宜过大。使用--raw参数可正确显示非ASCII字符。
2026-01-20 21:20:33
636
原创 Redis的基本全局命令以及数据类型和内部编码
本文介绍了Redis的全局命令和数据类型实现原理。主要内容包括:1)KEYS、EXISTS、DEL等基本命令的功能和使用;2)Redis的5种数据类型及其多种内部编码实现,根据数据量和复杂度自动选择最优编码;3)Redis单线程架构的高性能原理,包括纯内存操作、非阻塞IO和避免线程切换开销等特性。文章还指出Redis 3.2版本后list类型采用quicklist编码,并强调编码转换的不可逆性。通过object encoding命令可查看具体key的内部编码实现。
2026-01-19 19:21:06
681
原创 Vue3入门-计算属性+监听器
计算属性(computed)用于根据已有数据动态计算新值,具有缓存特性,适合模板展示和数据派生;侦听器(watch)用于监听响应式数据的变化并执行副作用操作,如异步请求或复杂逻辑,适合处理数据变化带来的过程和操作。两者结合使用,可以让 Vue 应用既高效又灵活。
2025-07-17 21:40:14
1521
1
原创 Vue3入门-组件及组件化
组件是 Vue 的核心概念之一,是指具有独立功能和结构的可复用代码块。每个组件包含自己的模板、逻辑和样式,可以像“积木”一样组合成完整的应用。组件化开发让项目结构更清晰、代码更易维护和复用。
2025-07-17 21:37:39
1212
原创 Vue3入门-指令补充
Vue 的指令修饰符(modifier)是以点(.)表示的特殊后缀,用于改变指令的行为。修饰符让指令更灵活,能满足更多实际开发需求。
2025-07-15 20:00:09
1028
原创 Vue3入门-必会前置知识
在学Vue3前,JS的基础知识是必须要知道,如果你有其他语言的基础的话,JS的语法非常简单,下面笔者会带大家回顾一下JS的基础语法,作为Vue3必会的前置基础知识。
2025-07-14 10:41:34
1397
原创 【MySQL】数据类型
本位介绍了MySQL中的数据类型,也了解的各个数据类型的具体用法,数据范围。希望大家在后续的创建表的过程中,可以合理使用这些数据类型。
2025-04-20 13:37:49
1674
10
原创 【MySQL】库的操作
在数据库中,创建数据库是最开始的一步,本文向读者介绍了库的创建,然后通过数据库的创建语法引导出数据库的字符集和校验规则,然后就是对数据库进行操作比如查看、修改等操作,最后就是数据的备份与恢复。
2025-04-17 11:18:34
2841
54
原创 【MySQL】数据库基础
数据库技术产生于20世纪60年代,是数据管理的核心技术。数据库管理系统(database management system,简称DBMS)是大型复杂的基础软件,也是现代信息系统的核心和基础。
2025-04-14 16:39:36
1251
22
原创 【Qt】HelloWorld程序
在Qt中,实现HelloWorld的方法有两种:1.通过图形化的方式,在界面上创建出一个控件,显示HelloWorld。2.通过纯代码的方式,在界面上创建控件,显示HelloWorld。
2025-02-26 16:24:06
1086
42
原创 【Qt】初始项目代码解释
Qt 初始代码的结构清晰且模块化,充分体现了 Qt 框架的设计哲学。从 QApplication 的初始化到 QWidget 的父子管理机制,再到 .pro 文件的配置,每个部分都在确保应用的稳定性和可扩展性。理解这些基础代码,不仅有助于掌握 Qt 的事件循环、窗口管理和资源组织方式,还能为后续的开发打下坚实的基础。希望这篇解析能帮助你更高效地入门 Qt,并为更复杂的应用开发做好准备。
2025-02-25 15:55:44
1865
73
原创 【Java】异常处理:从基础到进阶
异常处理不仅仅是程序中应对错误的工具,更是确保程序健壮性和可维护性的重要手段。通过精确地捕获和处理异常,开发者能够有效地防止程序崩溃,并为用户提供更加友好的错误提示。合理的异常处理不仅能让代码在面对预期之外的情况时保持稳定,还能提升程序的可读性与可扩展性。
2025-01-25 14:24:08
1996
33
原创 【Linux】同步与异步的魔法:如何让多线程程序更高效
在多线程编程中,线程同步与异步是两个核心概念,它们在保障程序稳定性和提升性能方面各司其职。
2025-01-24 23:18:52
2731
54
原创 【Linux】线程控制的秘密:如何写出高效、稳定的多线程程序
线程控制是多线程编程中不可或缺的一部分,通过合理管理线程的创建、运行、同步和终止,可以提升程序的效率、稳定性和资源利用率。
2025-01-22 22:42:41
1440
54
原创 「2024·我的成长之路」:年终反思与展望
2025年1月16日,2024年博客之星入围公布,很荣幸获得了这次入围的机会。2024年对我个人是里程碑的一年,是意义非凡的一年,是充满变化的一年。
2025-01-21 21:19:02
1842
62
原创 【Java】详细讲解数据类型与运算符
Java 类型汇总. 本文介绍的是基本数据类型,后续会给大家介绍引用数据类型。由于 Java 是强类型语言, 因此对于类型检查较严格, 因此像 && 之类的运算操作数必须是 boolean,整体来看, Java 的运算符的基本规则和 C 语言基本一致
2025-01-20 21:23:03
1781
31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅