面试—Redis相关

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: 面试—Redis相关

一、概述

使用场景:

  • Redis的数据持久化策略有哪些
  • 什么是缓存穿透,怎么解决
  • 什么是布隆过滤器
  • 什么是缓存击穿,怎么解决
  • 什么是缓存雪崩,怎么解决
  • redis双写问题
  • Redis分布式锁如何实现
  • Redis实现分布式锁如何合理的控制锁的有效时长
  • Redis的数据过期策略有哪些
  • Redis的数据淘汰策略有哪些

其它面试题

  • Redis集群有哪些方案, 知道嘛
  • 什么是 Redis 主从同步
  • 你们使用Redis是单点还是集群 ? 哪种集群
  • Redis分片集群中数据是怎么存储和读取的
  • redis集群脑裂
  • 怎么保证redis的高并发高可用
  • 你们用过Redis的事务吗 ? 事务的命令有哪些
  • Redis是单线程的,但是为什么还那么快?

二、缓存

1、缓存穿透

2、缓存击穿

3、缓存雪崩

4、双写一致性

5、持久化

RDB与AOF对比

RDB和AOF各有自己的优缺点,如果对数据安全性要求较高,在实际开发中往往会结合两者来使用。

RDB AOF
持久化方式 定时对整个内存做快照 记录每一次执行的命令
数据完整性 不完整,两次备份之间会丢失 相对完整,取决于刷盘策略
文件大小 会有压缩,文件体积小 记录命令,文件体积很大
宕机恢复速度 很快
数据恢复优先级 低,因为数据完整性不如AOF 高,因为数据完整性更高
系统资源占用 高,大量CPU和内存消耗 低,主要是磁盘IO资源但AOF重写时会占用大量CPU和内存资源
使用场景 可以容忍数分钟的数据丢失,追求更快的启动速度 对数据安全性要求较高常见

6、数据过期策略

7、数据淘汰策略

数据淘汰策略-使用建议

  1. 优先使用 allkeys-lru 策略。充分利用 LRU 算法的优势,把最近最常访问的数据留在缓存中。如果业务有明显的

冷热数据区分,建议使用。

  1. 如果业务中数据访问频率差别不大,没有明显冷热数据区分,建议使用 allkeys-random,随机选择淘汰。
  2. 如果业务中有置顶的需求,可以使用 volatile-lru 策略,同时置顶数据不设置过期时间,这些数据就一直不被删除,会淘汰其他设置过期时间的数据。
  3. 如果业务中有短时高频访问的数据,可以使用 allkeys-lfu 或 volatile-lfu 策略。

关于数据淘汰策略其他的面试问题

  • 数据库有1000万数据 ,Redis只能缓存20w数据, 如何保证Redis中的数据都是热点数据 ?

使用allkeys-lru(挑选最近最少使用的数据淘汰)淘汰策略,留下来的都是经常访问的热点数据

  • Redis的内存用完了会发生什么?

主要看数据淘汰策略是什么?如果是默认的配置( noeviction ),会直接报错

三、分布式锁

四、其它面试题

在Redis中提供的集群方案总共有三种

  • 主从复制
  • 哨兵模式
  • 分片集群
  1. redis主从数据同步的流程是什么?
  2. 怎么保证redis的高并发高可用?
  3. 你们使用redis是单点还是集群,哪种集群?
  4. Redis分片集群中数据是怎么存储和读取的?
  5. Redis集群脑裂,该怎么解决呢?

1、主从复制

2、哨兵

3、分片集群结构

4、I/O多路复用

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
13天前
|
存储 缓存 NoSQL
Redis八股文(大厂面试真题)
Redis八股文(大厂面试真题)
54 1
Redis八股文(大厂面试真题)
|
9天前
|
存储 NoSQL Redis
《面试官之你说我听》:简明的图解Redis RDB持久化、AOF持久化
《面试官之你说我听》:简明的图解Redis RDB持久化、AOF持久化
|
11天前
|
存储 缓存 NoSQL
经验大分享:Redis简单总结及常见面试题
经验大分享:Redis简单总结及常见面试题
16 1
|
16天前
|
存储 NoSQL Redis
redis面试题库
redis面试题库
|
25天前
|
存储 缓存 NoSQL
【面试宝藏】Redis 常见面试题解析其二
Redis 高级面试题涵盖了哈希槽机制、集群的主从复制、数据丢失可能性、复制机制、最大节点数、数据库选择、连通性测试、事务操作、过期时间和内存优化等。Redis 使用哈希槽实现数据分布,主从复制保障高可用,异步复制可能导致写操作丢失。集群最大支持1000个节点,仅允许单数据库。可通过 `ping` 命令测试连接,使用 `EXPIRE` 设置过期时间,`MULTI/EXEC` 等进行事务处理。内存优化包括合理数据类型、设置过期时间及淘汰策略。Redis 可用作缓存、会话存储、排行榜等场景,使用 `SCAN` 查找特定前缀键,列表实现异步队列,分布式锁则通过 `SET` 命令和 Lua 脚本实现。
30 5
|
2天前
|
缓存 NoSQL Redis
Java面试之redis篇
Java面试之redis篇
8 0
|
9天前
|
缓存 NoSQL 数据库
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
18 0
|
存储 缓存 移动开发
redis 面试总结
前段时间找工作搜索 golang 面试题时,发现都是比较零散或是基础的题目,覆盖面较小。而自己也在边面试时边总结了一些知识点,为了方便后续回顾,特此整理了一下。
161 0
redis 面试总结
|
存储 NoSQL 数据库
|
存储 NoSQL 数据库
Redis面试总结
什么是redis? Redis 是一个基于内存的高性能key-value数据库。 (有空再补充,有理解错误或不足欢迎指正) Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。
1578 0