首页 > 数据库 >面试-redis

面试-redis

时间:2023-06-16 11:46:01浏览次数:40  
标签:缓存 快照 请求 Redis redis 面试 key

常见数据结构

1.string
2.hash
3.list
4.set
5.sorted set

持久化机制

1.rdb 快照 在redis.conf种配置
save 900 1 #在900秒(15分钟)之后,如果⾄少有1个key发⽣变化,Redis就会⾃动触发BGSAVE命令创建快照。
save 300 10 #在300秒(5分钟)之后,如果⾄少有10个key发⽣变化,Redis就会⾃动触发BGSAVE命令创建快照。
save 60 10000 #在60秒(1分钟)之后,如果⾄少有10000个key发⽣变化,Redis就会⾃动触发BGSAVE命令创建快照
2.aof 追加文件 配置文件
appendfsync always #每次有数据修改发⽣时都会写⼊AOF⽂件,这样会严重降低Redis的速度
appendfsync everysec #每秒钟同步⼀次,显示地将多个写命令同步到硬盘
appendfsync no #让操作系统决定何时进⾏同

缓存雪崩

缓存同⼀时间⼤⾯积的失效,所以,后⾯的请求都会落到数据库上
事前:尽量保证整个 redis 集群的⾼可⽤性,发现机器宕机尽快补上。选择合适的内存淘汰策略。
事中:本地ehcache缓存 + hystrix限流&降级,避免MySQL崩掉
事后:利⽤ redis 持久化机制保存的数据尽快恢复缓存

缓存穿透

缓存穿透说简单点就是⼤量请求的 key 根本不存在于缓存中,导致请求直接到了数据库上
1.做好参数校验
2.布隆过滤器
把所有可能存在的请求的值都存放在布隆过滤器中,当⽤户请求过来,我会先判断⽤户发来的请求的值是否存在于布隆过滤器中。不存在的话,直接返回请求参数错误信息给客户端,存在的话才会⾛下⾯的流程。

如何保证缓存与数据库双写时的数据⼀致性

一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去

标签:缓存,快照,请求,Redis,redis,面试,key
From: https://www.cnblogs.com/fxx5/p/17485183.html

相关文章

  • Redis哨兵模式的配置
    1.环境准备master节点1个slave节点2个sentinel【哨兵】节点3个redis版本5.0.3操作系统:Centos72.主从节点配置创建redis-conf目录,此目录用于存放主从节点的配置文件复制redis.conf,然后创建三个配置文件:redis-6379.conf,redis-6380.conf,redis-6381.conf编辑主节点的配置......
  • Redis 缓存穿透、缓存击穿、缓存雪崩
    文章目录一、缓存穿透1.概念2.解决方案二、缓存击穿1.概念2.解决方案三、缓存雪崩1.概念2.解决方案一、缓存穿透1.概念key对应的数据在redis中并不存在,每次针对此key的请求从缓存获取不到,请求转发到数据库,访问量大了可能压垮数据库。比如用......
  • Redis(四)
    5.多级缓存传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库存在的问题请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈Redis缓存失效时,会对数据库产生冲击多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务性......
  • C++面试八股文:了解auto关键字吗?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第15面:面试官:了解auto关键字吗?二师兄:嗯,了解一些(我很熟悉)。面试官:说一说auto的用法吧?二师兄:auto主要是为了编译器进行类型推导。比如:autoi=42; //i被推导位int型std::vector<int>vi;for(autoit=vi.cbegin();it!=v......
  • springboot 中使用 redis 处理接口的幂等性
    什么是接口幂等性?数学中:在一次元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同;在二次元运算为幂等时,自己重复运算的结果等于它自己的元素。计算机学中:幂等指多次操作产生的影响只会跟一次执行的结果相同,通俗的说:某个行为重复的执行,最终获取的结果是相同的,不会因......
  • C++面试八股文:了解sizeof操作符吗?
    C++面试八股文:了解sizeof操作符吗?某日二师兄参加XXX科技公司的C++工程师开发岗位第10面:面试官:了解sizeof操作符吗?二师兄:略微了解(不就是求大小的嘛。。)面试官:请讲以下如何使用sizeof?二师兄:sizeof主要是求变量或者类型的大小。直接使用sizeof(type)或sizeof(var)`即可。......
  • 2023-06-15:说一说Redis的Key和Value的数据结构组织?
    2023-06-15:说一说Redis的Key和Value的数据结构组织?答案2023-06-15:全局哈希表Redis使用哈希表作为保存键值对的数据结构,通过哈希函数将Key映射为哈希表中的一个索引位置,使得Key-Value可以在O(1)时间复杂度内被快速访问。在Redis中,哈希表是由多个哈希桶(也称为槽位/数组元素)组成......
  • 2023-6-15 面试笔试复盘总结
    四川君迪能源后端笔试2023-6-15简答题:线程和进程的区别本质区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。包含关系:一个进程至少有一个线程,线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。资源开销:每个进程都有独立的地址空......
  • Java基础面试笔记(三) _Spring
    1.Spring框架有哪些主要模块?截止到目前Spring框架已集成了20多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成、Web、AOP(面向切面编程)、工具、消息和测试模块。2.什么是依赖注入?什么是控制反转(IOC)?在Spring中,有几种依赖注入方式?依赖注入是在编译......
  • SpringBoot整合Redis
    第一步:导入坐标 第二步:在application.yml中进行相关配置第三步:使用对应的API对操作接口进行操作 操作 key-value格式的 操作 hash格式的  ......