首页 > 数据库 >redis有关面试题1

redis有关面试题1

时间:2023-03-01 18:01:15浏览次数:60  
标签:面试题 缓存 单线程 有关 redis 内存 key 数据库

redis的特点:

  redis本质上是一个key-value类型的内存数据库,整个数据库系统加载在内存当中操作,定期通过异步操作把数据库数据flash硬盘上进行保存。因为是纯内存操作,redis的性能非常出色,每秒可以处理超过10万次读写操作,是已知的最快的key-value数据库。redis出色的不仅仅是性能,还支持保存多种数据结构,并且单个value可以存储的最大限制是1GB,另外redis还可以对key-value设置过期时间

  缺点是:数据库容易收到物理内存的限制,不能做海量数据的高性能读写,只适用于较小数据量的高性能操作何运算的场景。

 

1.redis为什么这么快

  基于内存

  单线程减少上下文切换,同时保证原子性

  使用多路I/O复用模型,非阻塞IO; 

  多种数据结构(hash、跳表等)

 

2.为什么使用单线程

  因为 Redis 是基于内存的操作,CPU 不会成为 Redis 的瓶颈,而最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且 CPU 不会成为瓶颈,那就顺理成章地采用单线程的方案了。

 

3.redis缓存三大问题

  1.缓存穿透是指客户端请求的数据再缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。不断发起这样的请求,给数据库带来压力

    缓存空对象、布隆过滤、 增强id的复杂度,避免被猜测id规律  

    做好数据的基础格式校验、加强用户权限校验、做好热点参数的限流

  2.缓存雪崩是指在同一时间段大量的key同时失效或者redis服务器宕机,导致大量请求到达数据库,带来巨大压力。

    给不同的key的TTL添加随机值

    利用redis集群提高服务的可用性

    给缓存业务添加降级限流策略

    给业务添加多级缓存

  3.缓存击穿问题也叫热点key问题,就是一个被高并发访问并且缓存重建业务比较复杂的key突然失效,无数的请求访问会在瞬间给数据库带来巨大的冲击

    逻辑过期

    互斥锁

 

4.先删后写还是先写后删

  先删除缓存再更新数据库 脏读问题

  先更新数据库再删除缓存  脏读几率小

标签:面试题,缓存,单线程,有关,redis,内存,key,数据库
From: https://www.cnblogs.com/yliunyue/p/17166836.html

相关文章

  • Redis中的缓存穿透、雪崩、击穿的原因以及解决方案
    一、概述①缓存穿透:大量请求根本不存在的key(下文详解)②缓存雪崩:redis中大量key集体过期(下文详解)③缓存击穿:redis中一个热点key过期(大量用户访问该热点key,但是热点key......
  • Redis主从复制原理
    1.当从服务器连接上主服务器后,主服务器向从服务器发送进行数据同步消息2.主服务器接到从服务器发送的数据同步的消息,把主服务器数据持久化,复制rdb文件发送给从服务器,从服......
  • redis集群某节点连接数偏高问题处理
    背景接收到监控推送的告警,redis集群某节点连接数偏高,触发告警阈值,但该项目明显没有大流量访问,最近也没有更新程序,虽然对生产暂时不会产生影响,但隐患毕竟是隐患,需排查。#......
  • NET Core面试题
    NETCore面试题说说显示实现接口和隐式实现接口的区别。隐式接口实现:如果类或者结构要实现的是单个接口,可以使用隐式实现。显式接口实现:如果类或者结构继承了多个接口......
  • [BAT面试题系列]乐观锁和悲观锁
    基本概念乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题(使用非常广泛,不局限于某种编程语言或数据库)。乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时......
  • 滴滴前端二面常考react面试题(持续更新中)
    什么是React的refs?为什么它们很重要refs允许你直接访问DOM元素或组件实例。为了使用它们,可以向组件添加个ref属性。如果该属性的值是一个回调函数,它将接受底层的DOM元素......
  • 美团前端二面经典react面试题总结
    React事件机制<divonClick={this.handleClick.bind(this)}>点我</div>React并不是将click事件绑定到了div的真实DOM上,而是在document处监听了所有的事件,当事件发生并......
  • redis主从复制原理
    小码今天去面试。面试官:给我介绍一下Redis集群,小码:啊,平时开发用的都是单机Redis,没怎么用过集群了。面试官:好的,出门右转不谢。小码内心困惑:在小公司业务量也不大,单机的......
  • Mac 通过 Homebrew 安装 Redis 环境
    前言记录一下安装配置Redis环境的过程和遇到的坑,以防止今后再花大量时间来解决。1.安装Redisbrewinstallredisbrewlinkredis测试一下:#启动Redis服务red......
  • Rocky Linux 9 安装 Redis Cluster 配置
    1、安装Redis6.2(六个节点,三主、三副本)dnf-yinstallredis2、修改配置(六个节点)#修改部分的配置文件#vim/etc/redis/redis.conf...bind0.0.0.0daemonizey......