
Redis
文章平均质量分 95
Redis
TravisBytes
行走江湖,我有一剑!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis如何解决大Key问题
### **1. 什么是大 Key?****大 Key(Big Key)** 指的是 **单个 Key 的数据量特别大**,通常体现在:- **单个 String 类型的 Key** 存储了超长的内容(如超大 JSON、Base64 图片)。- **单个 List/Set/Zset/Hash 存储大量元素**,导致: - **查询效率下降**(一次查询数据过多)。 - **删除或过期开销大**(删除一个 Key 可能会卡 Redis)。 - **主从复制或数据持久化时阻塞 Redis**(原创 2025-02-19 17:21:07 · 1286 阅读 · 1 评论 -
Redis如何解决热Key问题
热 Key(Hot Key)是指访问频率极高的键,在高并发场景下可能会造成:针对不同场景,解决方案主要包括 “分散请求” 和 “降低 Redis 负载” 两个方向。核心思路:在 Redis 之前增加一级缓存,减少 Redis 访问压力。本地缓存(L1 Cache)CDN 缓存(L0 Cache)示例:使用 Guava 本地缓存2. 进行 Key 预分片(Key Sharding)核心思路:将单个热 Key 拆分成多个 Key,让不同的 Redis 节点存储不同的副本,从而分散压力。示例适用场景核心思原创 2025-02-19 17:17:55 · 1069 阅读 · 0 评论 -
Redis 持久化错误导致登录功能失效的问题排查与解决
日志的重要性详细的日志可以快速定位问题所在;关键操作一定要有日志记录;错误信息要完整保留便于排查。Redis 配置管理重要配置要有文档记录,修改要有备份;要定期检查配置有效性,特别是持久化相关目录与权限。错误处理与监控代码中要有完善的错误处理,关键操作后要进行验证;业务上线后要建立监控机制,包括 Redis 状态监控、磁盘空间监控等。关于的理解这是 Redis 出于数据安全和风险提示的考虑,默认开启的一种保护机制;原创 2025-02-17 04:00:00 · 1955 阅读 · 0 评论 -
Redis 存储断点续传文件状态的最佳实践
Redis 作为临时存储,能高效地支持断点续传系统的状态管理。结合定时同步、实时更新或双写机制,能够确保 Redis 和数据库中的数据保持一致性。在实现时,我们还要注意一致性保障,避免因 Redis 失效或重启导致的数据丢失。原创 2024-12-16 16:03:02 · 1314 阅读 · 0 评论 -
Redis 发布/订阅模式与消息队列
Redis 的发布/订阅机制与消息队列功能在多个应用场景中非常有用,无论是实时通知系统还是任务调度,都能够提供高效且可靠的支持。在 C++ 中,通过hiredis库,我们能够轻松实现 Redis 发布/订阅和消息队列的功能。原创 2024-12-15 11:02:05 · 970 阅读 · 0 评论 -
Redis 高可用:从主从到集群的全面解析
本文详细介绍了 Redis 的主从复制、哨兵模式、集群模式以及分布式延时队列的原理、实现、优缺点及应用场景。这些机制共同构建了 Redis 高性能、高可用和高可靠性的基础,适用于各种复杂的业务场景。通过合理配置和优化这些机制,用户可以充分发挥 Redis 的优势,保障系统的稳定运行和数据的可靠性。原创 2024-10-18 14:27:26 · 1201 阅读 · 0 评论 -
Redis持久化与淘汰机制深度解析
Redis 提供了灵活多样的内存管理和持久化机制,能够满足不同业务场景的需求。通过合理选择和配置淘汰策略与持久化方式,用户可以在保证数据安全性的同时,优化系统性能和资源利用率。淘汰策略:根据数据访问模式和业务需求,选择合适的淘汰策略(如 LRU、LFU、Random 等),有效管理内存,提升缓存命中率。持久化机制:根据数据安全性、恢复速度和性能要求,选择 RDB、AOF 或混合持久化,确保数据的可靠存储和高效恢复。优化大 Key 处理。原创 2024-10-18 09:04:11 · 1164 阅读 · 0 评论 -
深度解析 Redis 存储结构及其高效性背后的机制
在 Redis 中,“大 Key”指的是包含大量数据的键,如包含大量元素的哈希表、有序集合或列表。:为了节省内存,Redis 的跳表采用了更扁平化的结构,限制了跳表的最大层级为 32 层。Redis 使用跳表(Skip List)作为有序集合(Sorted Set, ZSet)的底层实现,以提供高效的有序数据存储和快速的增删查改操作。并不保证键的遍历顺序,而是以伪随机的方式返回键。:为了提高性能,Redis 在处理链表时采用了多种优化策略,如使用更高效的内存分配和缓存友好的数据结构,减少链表遍历的开销。原创 2024-10-16 17:15:00 · 1622 阅读 · 0 评论 -
Redis为何单线程也能飞速执行?解密核心逻辑
Redis通过其核心的单线程处理模型,结合多线程和异步操作的优化设计,实现了高效的数据处理能力。内存存储:避免传统数据库的磁盘IO瓶颈,提供快速的数据读写能力。高效的数据结构:使用哈希表和多种编码方式,确保操作的高效性和内存的优化利用。Reactor模型:高效的事件驱动机制,支持大量并发请求。分治与分批处理:通过分摊复杂操作,避免主线程的阻塞,提高系统响应速度。IO多线程模型:在Redis 6.0及之后版本,引入I/O多线程处理网络请求,进一步提升并发性能。原创 2024-10-16 08:45:00 · 2708 阅读 · 0 评论 -
Redis协议详解及其异步应用
Redis Pipeline(管道)是一种客户端机制,允许一次性发送多个Redis命令到服务器,而无需等待每个命令的响应。通过管道,可以显著减少网络延迟,提高命令执行的吞吐量。Redis 事务允许客户端一次性执行一系列命令,确保这些命令按顺序执行且没有其他客户端的干扰。MULTI:标记事务的开始。EXEC:执行事务中的所有命令。DISCARD:取消事务,清空事务队列。WATCH:监视一个或多个键,如果这些键在事务执行前被修改,事务将被中断。Redis。原创 2024-10-12 18:45:00 · 2246 阅读 · 0 评论 -
Redis异步实现解析
当使用同步连接时,客户端发送一个命令给 Redis 服务器,并在收到服务器响应之后才能继续执行后续的操作。在同步连接中,客户端在执行命令时会阻塞当前线程,等待服务器的响应,直到响应返回或超时。允许客户端在发送命令后不等待响应,可以继续执行其他操作,适用于高性能和高并发场景。以下示例展示了如何实现 Redis 异步连接,包括 Reactor 的实现、Redis 适配器以及主体代码。实现异步连接需要一个 Redis 驱动,该驱动需要将 Redis 连接融入项目中的。原创 2024-10-12 14:10:49 · 1131 阅读 · 0 评论 -
Redis 完整指南:命令与原理详解
Redis(Remote Dictionary Server)是一个开源的、高性能的键值对(Key-Value)存储数据库,广泛用于数据库、缓存和消息代理。内存存储:所有数据存储在内存中,提供极高的读写速度。多种数据结构:支持字符串、列表、哈希、集合、有序集合等多种数据类型,满足不同的应用需求。持久化:提供 RDB 和 AOF 两种持久化机制,确保数据在服务器重启后不丢失。原子操作:所有操作都是原子性的,支持事务处理。丰富的功能。原创 2024-10-10 10:17:54 · 1412 阅读 · 1 评论