
Redis
文章平均质量分 61
舒适边缘
坚定目标是做最好的准备,降低预期是做最坏的打算
展开
-
Redis 主从复制、哨兵模式、集群模式
哨兵是Redis集群高可用的解决方案,由一个或者多个Sentinel实例组成的系统,会监控Redis主节点,以及主节点下的从节点。当主节点发生故障时,哨兵会在从节点选举一个作为新的主节点,进行故障转移,由新的主节点继续处理命令。哨兵模式很好的解决了主从复制无法故障转移的缺点。但但redis数据量大时无法进行横向扩容。实际开发中通过连接Sentinel来进行redis的操作以及读写分离。原创 2023-12-07 11:17:38 · 805 阅读 · 0 评论 -
Redis缓存穿透、缓存雪崩、缓存击穿
当访问的数据,缓存和数据库都不存在,每次请求都直达数据库,一般为恶意攻击某一时间大量的key过期,导致请求全部直达数据库缓存击穿和缓存雪崩类似,某一时刻,热点key失效,有大量的请求访问该热点数据。原创 2023-12-05 10:37:59 · 322 阅读 · 0 评论 -
Redis 和数据库的一致性
一、缓存是失效还是更新多个线程同时更新缓存,可能会造成数据不一致情况,如线程A先更新数据库,后切换线程B更新数据库,然后线程B更新缓存,最后切换线程A更新缓存,数据库存储B的数据,缓存为A的造成数据不一致有些只更新部分信息,可能需要遍历判断。操作繁琐开销大。如果更新很频繁,是否考虑这些数据不适合使用缓存二、缓存更新策略先删除缓存,后更新数据库时,如果还未更新数据库,此时有新的请求会读取数据库旧的数据,同时保存到缓存里,数据库更新后,缓存和数据库数据不一致,同时需下次操作时才能刷新缓存,不确定性原创 2023-12-05 10:36:23 · 474 阅读 · 0 评论 -
一致性Hash算法
一、一致性Hash算法的作用如redis数据分片,hash(key)%N,落到某个节点上,当增加或减少节点个数导致数据缓存的位置都是错误的,使得请求大量直到数据库,造成缓存雪崩。一致性Hash算法就是为了解决这个问题二、一致性Hash算法从0开始顺时针递增,2^32 -1为结尾形成一个hash环,机器通过hash然后对2^32 取模,落在环上,数据的hash也对2^32次取模落在hash环上,顺时针遇到的第一个机器,那么数据就存储在该机器上,这样增加或减少机器时,只会影响部分数据。三、一致性原创 2023-12-05 10:35:46 · 402 阅读 · 0 评论 -
Redis 持久化
一、RDBRDB时会fork一个子进程,fork时会阻塞,子进程和父进程共享内存空间。RDB期间操作数据,采用写时复制技术,主进程会复制出页进行操作RDB的优点RDB是二进制文件暂用的空间很小,RDB文件恢复比AOF快RDB可以用于数据备份以及数据恢复RDB有fork的子进程完成保存工作,主进程不需进行任何磁盘操作RDB的缺点RDB默认5分钟备份一次,宕机后数据恢复会损失5分钟的数据Redis数据很大时,fork会存在明显的阻塞RDB采用写时复制,时如果写入很频繁,那原创 2023-12-05 10:35:05 · 411 阅读 · 0 评论 -
Redis基础
)原创 2023-12-05 10:33:51 · 889 阅读 · 0 评论