Day06

简介: Day06:掌握Redis常见数据结构(String、Hash、List、Set、Sorted Set、Geospatial),了解AOF与RDB持久化机制及刷盘策略,熟悉缓存雪崩、穿透、击穿的成因与解决方案,并学习MySQL索引优化相关理论。

Day06

每日必会
说下常见的Redis数据结构吧

1字符串(String):最基本的数据结构,可以存储字符串、整数或者浮点数。
2哈希(Hash):类似于关联数组,可以存储多个键值对,适合存储对象的属性。
3列表(List):双向链表结构,支持从两端进行元素的插入和删除,适合做队列或者栈。
4集合(Set):无序且不重复的元素集合,支持集合间的交集、并集和差集等操作。
5有序集合(Sorted Set):类似于集合,但每个元素都会关联一个分数,可以按照分数进行排序。
6地理空间索引(Geospatial Index):用于存储地理位置信息的数据结构,支持附近位置的搜索等功能。

Redis的持久化了解吗

了解过的面试官,主要是AOF和RDB,AOF是一种存储命令的持久化方式,可以借助于rewriteaof命令进行重写压缩以提高性能,而RDB存储的是一个二进制文件,两者一般是配合使用的,避免数据丢失。
并且持久化也跟刷盘机制有关,如果是always就不会丢失数据,everysecond最多丢一秒,如果是none交给系统就可能丢的多了。

Redis的三剑客

1缓存雪崩(Cache Avalanche):指在某个时间段内,大量缓存数据同时失效,导致大量请求直接访问数据库,造成数据库压力剧增,甚至引起数据库宕机。缓存雪崩通常是由于缓存数据设置了相同的过期时间,导致在同一时间大量缓存同时失效引起的。
解决方法:可以在设置缓存时,给缓存数据的过期时间增加一个随机值,避免大量缓存同时失效;另外,可以使用热点数据预加载、限流等方式来缓解缓存雪崩的影响。
1缓存穿透(Cache Penetration):指恶意请求或者不存在的数据频繁访问缓存,由于缓存中不存在该数据,每次请求都会直接访问数据库,导致数据库压力增大。
解决方法:可以在缓存中对于不存在的数据设置一个空值,或者使用布隆过滤器等方式来过滤恶意请求,避免直接访问数据库。
1缓存击穿(Cache Breakdown):指针对某一热点数据,由于缓存数据过期或者被删除,导致大量请求直接访问数据库,造成数据库压力增大。
解决方法:可以在缓存失效时,使用互斥锁或者分布式锁来避免大量请求同时访问数据库,同时可以提前异步加载热点数据到缓存中,避免缓存失效时直接访问数据库。

理论专项
MySQL
索引数据结构
SQL优化
哪些场景会索引失效
如何定位慢查询
回表
覆盖索引
索引下推


相关文章
|
SQL 存储 算法
ClickHouse性能优化 3
ClickHouse性能优化
970 0
|
2月前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图,横轴为对象,纵轴为时间。它用于展示系统动态协作过程,强调交互的时间先后关系,直观呈现并发行为。主要元素包括角色、对象、生命线、控制焦点和消息等,广泛应用于软件设计建模。
系统时序图
|
2月前
|
消息中间件 存储 数据挖掘
应用架构图
本文介绍应用架构图的设计原理,涵盖单体与分布式架构模式。重点解析展现层、业务层、数据层及基础通用层的分层设计,阐述系统间调用关系与外部依赖,明确应用边界,指导技术方案落地。
|
2月前
|
JSON 安全 机器人
钉钉通知
本文介绍如何通过Java代码调用钉钉机器人API实现系统告警消息推送。内容涵盖机器人创建、Webhook配置、Postman测试及Java代码实现,并提供限流策略与关键词安全设置等最佳实践,助力实时监控与异常通知。
|
2月前
|
项目管理 开发者
业务架构图
业务架构图是梳理业务层级与关系的工具,通过分层、分模块、分功能,抽象出业务核心结构,明确各部分职责与协作,服务于客户理解与系统开发,是连接业务与技术的重要桥梁。
|
2月前
|
消息中间件 运维 物联网
语音通知
语音通知服务适用于科技公司服务器或物联网设备异常时的告警通知。通过语音电话形式,向处理人播报预设模板内容,支持变量替换实现个性化提醒。需开通语音服务并申请资质、话术、号码及模板,可通过API发起呼叫并查询记录,支持主动查询与消息回执两种结果获取方式,提升运维响应效率。
语音通知
|
2月前
|
存储 缓存 Java
自定义注解
本文介绍Java自定义注解的实现原理与应用,结合Spring AOP 和过滤器实现日志、权限控制及登录验证,涵盖注解定义、@Target、@Retention等核心语法,并通过代码示例展示实际使用流程。
 自定义注解
|
2月前
|
存储 安全 前端开发
1.认识OAuth2.0
OAuth2.0是一种开放授权标准,允许第三方应用在用户授权下安全访问资源,无需获取用户账号密码。文中介绍了其四大授权模式:授权码模式(最安全,适用于Web应用)、简化模式(适用于前端单页应用)、密码模式(需高度信任)和客户端模式(服务间调用)。通过案例解析,说明OAuth2.0如何实现服务间资源共享与单点登录,提升系统安全性与用户体验。
1.认识OAuth2.0
幂等方案专题
本文专题探讨幂等性解决方案,涵盖轻量级锁、重量级锁、自旋锁、偏向锁、乐观锁、悲观锁,以及读写锁、共享锁、排他锁、间隙锁、行锁、表锁和分布式锁等常见锁机制,助力系统实现高效并发控制与数据一致性保障。
|
2月前
|
安全
支付方案专题
本文专题介绍支付系统中常见的锁机制,涵盖轻量级锁、重量级锁、自旋锁、偏向锁,以及乐观锁、悲观锁等并发控制策略,同时解析读写锁、共享锁、排他锁、行锁、表锁、间隙锁和分布式锁的原理与应用场景,助力构建高效安全的支付系统。