Redis
文章平均质量分 78
专注于redis学习
coder_zh_
且视他人之凝目如盏盏鬼火,大胆地去走你的夜路。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis篇-消息队列
消息队列是一种用于存储和管理消息的机制,主要包含消息队列、生产者和消费者三个角色。Redis提供了三种实现消息队列的方式:List结构、PubSub(发布订阅)和Stream。List结构基于双向链表,支持LPUSH/RPOP或RPUSH/LPOP操作,优点是利用Redis存储不受JVM内存限制,支持持久化和消息有序性,但存在消息丢失风险和仅支持单消费者。PubSub模型支持多生产者和多消费者,但不支持数据持久化,存在消息丢失和堆积上限问题。Stream模型较为完善,支持消息回溯、多消费者读取和阻塞读取,但原创 2025-05-19 01:52:25 · 274 阅读 · 0 评论 -
Redis篇-使用场景与面试技巧【分布式锁及其他场景与问题】
Redis分布式锁的实现主要依赖于setnx命令,确保在集群环境下任务的幂等性,如抢单、抢券等场景。Redisson提供了分布式锁的实现,支持可重入锁,并通过WatchDog机制自动续期锁的有效时长,避免锁过期。Redis集群方案包括主从复制、哨兵模式和分片集群,分别解决高可用、高并发读和海量数据存储问题。分片集群通过哈希槽分配数据,确保数据存储和读取的高效性。Redis的高性能得益于其单线程模型、纯内存操作和I/O多路复用技术,有效避免了线程切换和资源竞争问题。原创 2025-05-19 01:47:38 · 1178 阅读 · 0 评论 -
Redis篇-使用场景与面试技巧【缓存问题】
Redis作为高性能的缓存数据库,广泛应用于多种场景,但也面临缓存穿透、击穿、雪崩等问题。缓存穿透指查询不存在的数据导致数据库压力增大,可通过缓存空数据或使用布隆过滤器解决。缓存击穿发生在热点数据过期时,大量请求直接访问数据库,可通过互斥锁或逻辑过期策略解决。缓存雪崩则是大量缓存同时失效或Redis服务宕机,可通过设置随机过期时间、使用Redis集群或添加降级限流策略来应对。此外,Redis的双写一致性、持久化策略(RDB和AOF)、数据过期策略(惰性删除和定期删除)以及数据淘汰策略(如LRU、LFU等)也原创 2025-05-17 23:40:09 · 1145 阅读 · 0 评论 -
Redis篇-布隆过滤器
布隆过滤器是一种基于位数组和哈希函数的数据结构,用于高效地判断一个元素是否存在于一个集合中。它由一个初始值为0的位数组和多个哈希函数组成。当布隆过滤器判定某个元素存在时,可能存在误判;但若判定不存在,则该元素一定不存在。布隆过滤器的主要优势是空间效率高,但存在一定的误判率,主要由于哈希冲突导致。例如,当某个不存在的元素被误判为存在时,系统会错误地认为该元素存在于集合中。原创 2025-05-16 22:24:02 · 208 阅读 · 0 评论 -
Redis篇-入门
Redis是一个高性能的基于内存的键值对数据库,适用于存储热点数据如商品、资讯等。它支持多种数据类型,包括字符串、哈希、列表、集合和有序集合,每种类型都有特定的应用场景和操作命令。Redis提供了丰富的命令集,如SET、GET、HSET、HGET等,用于数据的存储、查询和删除。在Java中,可以通过Jedis、Lettuce或Spring Data Redis等客户端与Redis进行交互。Spring Data Redis通过简化配置和提供模板类,使得在Spring项目中操作Redis更加便捷。通过Redi原创 2025-05-16 00:38:27 · 596 阅读 · 0 评论
分享