![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 69
Redis是一个开源的高性能的键值数据存储系统。它被设计成具有高扩展性和灵活性,可以支持多种数据结构。
404NotFound.zz
Shit on the mountain
展开
-
Redis基本知识点
Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库、缓存、消息代理和流引擎。Redis提供了数据结构,如字符串、哈希、列表、集合、排序集合、范围查询、位图、超日志、地理空间索引和流。Redis具有内置复制、Lua脚本、LRU驱逐、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster提供高可用性和自动分区。原创 2023-10-15 20:23:40 · 52 阅读 · 1 评论 -
Redis高级篇(分布式锁)
分布式锁是一种用于在分布式系统中同步访问共享资源的机制。在分布式系统中,多个节点同时访问共享资源可能会导致数据不一致或冲突。分布式锁通过在多个节点之间协调和管理共享资源的访问,确保同一时间只有一个节点能够访问该资源,从而保证数据的一致性和可靠性。原创 2023-10-30 17:09:58 · 76 阅读 · 1 评论 -
Redis高级篇(缓存过期淘汰策略)
redis默认内存为0,在x64系统下表示不限制内存使用。通过修改配置文件或通过命令修改(命令重启后就不生效)页面置换算法,淘汰一定时间内访问次数最少得页面。一般建议使用:allkeys-lru淘汰策略。页面置换算法,淘汰最长时间未被使用的页面。Redis缓存淘汰策略口诀(原创 2023-11-05 19:41:37 · 47 阅读 · 1 评论 -
Redis高级篇(预热-雪崩-击穿-穿透)
缓存预热的实现方式可以根据具体业务需求和技术架构来选择,例如可以通过定时任务,事先加载特定的数据到缓存中;缓存预热,顾名思义,是指在系统启动或某一阶段之前,将一些热点数据提前加载到缓存中,以便在需要时能够快速响应请求。缓存雪崩是指在缓存系统中,由于多个缓存对象不在Redis中,导致大量请求直接打到后端数据库,且后端数据库也无该数据,使得数据库压力骤增,甚至导致系统崩溃。过期或被删除,同时有大量并发请求访问这个热点数据,导致请求直接落到数据库,引发数据库负载激增的情况。3.多缓存策略(本地缓存+Redis)原创 2023-10-29 22:14:09 · 37 阅读 · 0 评论 -
Redis高级篇(缓存双写一致性)
也就是说如果数据库写成功,缓存更新失败,那么只要到达过期时间,则后面的读请求自然会从数据库中读取新值然后回填缓存,达到一致性,切记,要。例:A线程删除缓存成功后处于数据库更新中,此时B线程读数据,从mysql中读取并写回Redis,在A更新完数据库后,休眠一会,再对缓存进行一个二次删除,即延时双删。在高并发情况下,缓存删除成功但数据库更新中,有并发读请求,并发读请求从数据库读到旧值并回写到redis,导致后续都是从redis读取到旧值。更新缓存时,若Redis宕机,则会导致Redis数据丢失。原创 2023-10-18 20:09:42 · 39 阅读 · 1 评论 -
Redis高级篇(单线程 vs 多线程)
IO多路复用(IO Multiplexing)是一种同步IO的模型,它允许单个线程同时监听多个IO事件,从而提高系统的并发处理能力。在传统的阻塞IO模型中,一个线程只能处理一个IO操作,当有多个IO操作需要处理时,就需要创建多个线程或使用多进程来处理。这样会带来线程或进程切换的开销,且当并发连接较多时,线程或进程数量明显增加,对系统资源造成压力。而IO多路复用采用了事件驱动的方式,同一个线程可以同时监视多个IO资源(例如套接字),当有IO事件到达时,线程会被唤醒,并根据事件类型进行相应的处理。原创 2023-10-16 20:00:42 · 30 阅读 · 1 评论 -
Redis高级篇(BigKey)
1、向Redis中写入100w测试数据key。1、多大的key才能称之为BigKey。2、测试keys * 所花费的时间。2、BigKey有哪些危害。4、如何发现BigKey。内存不均,集群迁移困难。原创 2023-10-16 20:54:23 · 54 阅读 · 1 评论 -
Redis高级篇(大数据统计分析)
Redis HyperLogLog 是一种数据结构,用于估计集合中的唯一元素的数量。它可以用来进行基数估计,在很少的内存使用下,能够高效地处理。在Redis里面,每个hyperloglog键只需要花费12kb内存,就可以计算接近2^64个不同元素的基数。它使用固定的内存空间来跟踪集合中的唯一元素的数量,而不是存储实际的元素。unique visitor,独立访客,一般理解为客户端IP。统计一个集合中不重复的元素个数,常见于hyperloglog。需要注意的是,HyperLogLog 估计的结果是一个。原创 2023-10-22 22:24:58 · 106 阅读 · 1 评论 -
Redis高级篇(bitmap布隆过滤器)
布隆过滤器(Bloom Filter)是一种空间效率高、处理速度快的概率型数据结构,用于判断一个元素是否存在于一个集合中。高效地插入和查询,减少内存占用,不保存数据信息,只存储一个标记位0、1。但返回的结果是不确定,有点小瑕疵。由于存在哈希冲突,一个元素判断结果(返回0或1)存在但元素不一定存在,判断结果不存在则一定不存在(有可能有,无肯定无)。布隆过滤器由一个位数组(通常是一个大的二进制位数组)和一系列哈希函数组成。可以保证的是,如果一个元素不在布隆过滤器中,则此元素一定不存在。原创 2023-10-25 14:50:11 · 274 阅读 · 0 评论