栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

复盘Redis知识点

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

复盘Redis知识点

redis实现分布式锁要点速通_运气不好努力来凑-CSDN博客redis实现分布式锁的原理以及注意事项。看了这篇文章的都说简单https://blog.csdn.net/wai_58934/article/details/122609458?spm=1001.2014.3001.5501分布式下缓存Redis_运气不好努力来凑-CSDN博客redis作为缓存——基础知识扫盲https://blog.csdn.net/wai_58934/article/details/122607462?spm=1001.2014.3001.5501

 

目录

Redis和mysql数据不一致问题

Redis数据结构以及使用场景

Redis主从复制核心原理

Redis为什么这么快

Redis过期键的删除策略

什么是缓存预热

哨兵模式

Redis事务是如何实现的

 为什么在6.x引入多线程


Redis和mysql数据不一致问题
    先更mysql,再更新redis。如果redis更新失败则之后可能读到老数据。先删除redis,再更新mysql,再次查询时写入redis。高并发下性能较低。并且如果你删除redis之后,一个更新线程还没来得及更新就被一个查询线程查询了。写入redis的数据仍是老数据。先删除redis,然后更新mysql,隔几百毫秒再删除redis缓存的数据。(延时双删,常用)

Redis数据结构以及使用场景

常用:string、list、set、hash、zset

string:分布式锁的实现、计数器。list:可以用作栈和队列。可缓存消息流数据。set:可以找到交集、并集、差集。可实现共同好友、朋友圈点赞等功能。hash:适合存储对象。zset:有序、可以实现排行榜功能。

不常用:

bitmap:布隆过滤器geohash:坐标hyperloglog:统计不重复数据,用于大数据基数统计streams:内存版kafka

Redis主从复制核心原理
    集群启动,主从先建立连接。主库数据同步给从库。依赖于内存快照RDB。但是同步过程中主库仍会接收写操作。但是刚才的快照已经发过去了。所以采取补救措施,主库内存中会有replication buffer去专门记录同步过程中未同步的写操作。再发送完快照之后,紧接着发送replication buffer,完成主从同步。后续就将写操作给主库,之后增量同步给从库。

Redis为什么这么快

IO多路复用,同时监听多个socket单线程(网络事件处理器是单线程的),无需上下文切换(并不是说redis中没有其他线程。如从节点同步还需要额外的线程)基于纯内存操作。

Redis过期键的删除策略

惰性过期:使用到才去删除。对cpu友好,对内存不友好(可能导致大量过期键堆积)定期过期:间隔一段时间扫描过期字典里的部分key,去删除。

redis同时使用两种策略。

什么是缓存预热

提前将相关的缓存数据加载到缓存系统中,避免刚上线使用户有太多请求打到数据库上去

哨兵模式

通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。

当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。

单个哨兵也会出现问题,所以我们设置哨兵集群。哨兵不仅监控主从节点,哨兵之间还互相监控。

如果master节点挂了,单个哨兵会先认为主观下线,后面的哨兵也检测到主服务器不可用,并且数量达到一定值时切换选举的master,并且使用发布订阅模式切换主机,这叫做客观下线。

Redis事务是如何实现的
    开始事务命令入队执行事务

注意:redis只能帮你检测语法的错误而不能检测逻辑的错误,如果逻辑有错误,除了有错误的地方,其他地方照常执行。

实例:

 

 为什么在6.x引入多线程

 Redis 引入多线程操作也是出于性能上的考虑,对于一些大键值对的删除操作,通过多线程非阻塞地释放内存空间也能减少对 Redis 主线程阻塞的时间,提高执行的效率

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/723529.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号