logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

从零手写一个面试级 C++ vector:内存模型、拷贝语义与扩容策略全解析

本文详细介绍了如何从零开始实现一个具备面试价值的C++ vector容器。作者通过剖析vector的核心结构(三个指针管理连续内存)、构造函数与析构函数、拷贝语义(深拷贝与copy-swap惯用法)、容量管理(reserve和resize)、元素访问接口、push_back扩容策略(2倍增长)以及insert/erase操作等关键部分,完整展示了vector的实现原理。重点强调了面试中常问的迭代器

文章图片
#面试#c++#职场和发展
Redis - 单线程为什么这么快?

Redis的高性能源于多层次的系统优化:1)纯内存存储实现纳秒级访问,但需配合持久化机制;2)精简KV架构避免SQL解析等开销;3)单线程模型消除锁竞争,保持原子性;4)I/O多路复用处理高并发连接。其字符串类型支持二进制安全存储,最大512MB,通过批量命令减少网络开销。相比传统数据库,Redis通过功能克制(无复杂事务/约束)和内存操作获得微秒级延迟,但需注意其非强一致性特点。核心设计哲学是先

文章图片
#redis#数据库#缓存
Redis - hash编码方式及其应用

Redis通过ziplist和哈希表实现高效内存管理,在结构化数据存储上Hash比String更优。ziplist采用紧凑编码节省空间,适合小数据量;哈希表支持快速操作,适合大数据量。Redis设计遵循高内聚低耦合原则,模块间通过契约交互,保证系统可扩展性。在工程实践中,Redis采用动态编码策略,根据数据规模自动选择最优存储结构,并通过适当冗余提升开发效率。整体设计追求在不同数据规模下保持性能与

文章图片
#前端#html#redis +2
Redis Hash 类型:设计原理、底层实现与生产实践(深度展开)

Redis Hash类型深度解析:对象存储与性能优化 Redis Hash是一种嵌套型数据结构,特别适合存储对象数据。它通过两层key-value结构实现逻辑聚合,相比JSON string支持字段级更新且内存更友好。底层采用ziplist(小数据)和dict(大数据)两种编码自动切换,体现了空间换时间的设计哲学。核心命令包括原子性批量操作(HSET)、字段级访问(HGET)和增量计数(HINCR

文章图片
#redis#哈希算法#数据库 +2
Redis List 深度解析:底层原理、应用场景与性能优化

Redis List底层结构从ziplist到linkedlist再到quicklist不断演进,quicklist作为当前默认实现,结合了ziplist和双向链表的优势。List支持双端操作和阻塞队列,适用于时间线、任务队列等场景,但不适合高可靠性需求。Set与List的核心区别在于有序性和重复性。使用Pipeline可显著提升批量操作性能,建议单次命令不超过1000条。设计时应根据业务需求选择

文章图片
#redis#list#性能优化
Redis 高级应用指南:List、ACL 与阻塞队列

Redis List提供了丰富的数据操作命令,包括元素定位(LINDEX)、插入(LINSERT)、替换(LSET)和删除(LREM/LTRIM)等,但需要注意其O(N)时间复杂度可能影响性能。Redis 6.0引入的ACL功能实现了细粒度的访问控制,支持命令和key级别的权限管理。BLPOP/BRPOP阻塞命令可实现轻量级任务队列,适用于异步处理场景,但缺乏消息确认机制。最佳实践包括:优先使用O

文章图片
#redis#list#数据库
Redis Set 深度解析:命令、业务场景与性能优化

Redis Set是一种存储无序且唯一元素的高效数据结构,底层基于哈希表实现。本文系统讲解了Redis Set的基础命令(SADD/SMEMBERS等)、集合运算(交集/并集/差集)及典型应用场景(标签系统、抽奖活动、好友关系)。特别强调了性能优化策略:大集合应使用SSCAN遍历,频繁运算结果应存储缓存,注意编码切换机制。Redis Set凭借其O(1)时间复杂度、自动去重和强大集合运算能力,成为

文章图片
#redis#性能优化#数据库 +1
Redis 全量键遍历与数据库特性深度解析

Redis键空间遍历与数据库管理摘要:Redis提供KEYS和SCAN两种键遍历方式,其中KEYS命令会阻塞主线程,仅适用于测试环境;SCAN采用渐进式遍历,通过游标机制避免阻塞,适合生产环境大数据量操作。Redis默认支持16个数据库,但建议使用键前缀而非数据库切换实现业务隔离。核心设计思想强调非阻塞操作和客户端去重处理,生产环境应禁用KEYS、FLUSHDB等高风险命令,通过SCAN系列命令和

文章图片
#数据库#redis#缓存 +1
Redis - 客户端基本介绍

Redis作为开源内存数据库,广泛应用于缓存、消息队列等场景。其核心学习要点包括:1)命令行工具redis-cli适用于调试测试,但不适合生产环境;2)各语言客户端API(如Java的Jedis/Python的redis-py)提供连接池、序列化等企业级功能;3)Redis支持50+语言,拥有活跃社区(40亿Docker下载、5万GitHub星)。学习建议:从命令行入门,但生产环境必须使用客户端A

文章图片
#redis#数据库#缓存 +1
深入理解 Redis 事务:从原理到实践的完整解析

Redis事务设计与实践:与MySQL事务的本质差异 Redis事务采用与MySQL完全不同的设计理念,核心差异体现在: 原子性:Redis只保证命令队列完整执行,不支持回滚机制 实现机制:通过MULTI/EXEC命令队列和WATCH乐观锁实现,无UndoLog等复杂机制 设计目标:优先保证性能而非严格一致性 关键特性包括: 命令打包执行和顺序串行化处理 WATCH基于键版本号实现乐观锁控制 执行

文章图片
#redis#数据库#缓存
    共 32 条
  • 1
  • 2
  • 3
  • 4
  • 请选择