当前位置: 首页 > article >正文

redis面试复习

1.redis是单线程还是多线程

无论什么版本工作线程就是是一个,6.x高版本出现了IO多线程

单线程满足redis的串行原子,只不过IO多线程后,把输入/输出放到更多的线程里区并行,好处:

1.执行的时间更短,更快;2.更好的压榨系统以及硬件资源

2.redis存在线程安全的问题吗?为什么

redis可以保障的是内部串行,外界使用的时候要进行保障,业务上需要自行保障

3.缓存穿透

穿透 是没有这个数据,

解决方案:null key 或者布隆过滤器  可以考虑加锁来进行降低请求的次数 或者限流

4.缓存击穿

热点key过期了(或者某个key突然之间成了热点key,但是这个key还没来得及缓存)

解决方案:可以考虑加锁来进行降低请求的次数  或者限流

5.缓存雪崩如何处理

缓存穿透,缓存击穿,缓存雪崩这些现象的本质都是缓存中不存在数据,导致了大量的请求直接到数据库的层面上,让数据库承担了很大的压力,针对这种情况,肯定是要想办法来进行降级对数据库的一些请求量,可以通过加锁来进行降低对数据的压力,加锁完成之后 还是要进行想办法将数据存储到缓存中来

6.缓存是如何回收的

1.后台在轮询,分批分批的删除的过期的key,

2.请求的时候 删除已经过期的key

7.缓存如何进行预热

提前把数据放到redis中,击穿,雪崩的时候 可以将一些数据提前缓存到redis中。

8.缓存和数据不一致 如何进行解决

可以基于canal的binlog同步

9.简述一下主从不一致的问题

redis是弱一致性,锁不能用主从,用单实例/分片集群/redlock 

在配置文件中配置必须有多个client链接能同步,趋于强一致性


 


http://www.kler.cn/a/418140.html

相关文章:

  • 3. STM32_串口
  • 图解RabbitMQ七种工作模式生产者消费者模型的补充
  • DVWA靶场文件包含(File Inclusion)通关教程(high级别)
  • 鸿蒙NEXT元服务:利用App Linking实现无缝跳转与二维码拉起
  • 第三方Express 路由和路由中间件
  • Next.js 中 API 路由与 Actions 的使用选择与比较
  • PyTorch介绍
  • 深度学习 | pytorch + torchvision + python 版本对应及环境安装
  • qt QLinearGradient详解
  • 【C++二分查找 前缀和】2333. 最小差值平方和|2011
  • Kubernetes集群操作
  • C++编程:模拟实现CyberRT的DataVisitor和DataDispatcher
  • openwrt利用nftables在校园网环境下开启nat6 (ipv6 nat)
  • AntFlow 0.20.0版发布,增加多数据源多租户支持,进一步助力企业信息化,SAAS化
  • Python基于 Opencv+wxPython 的人脸识别上课考勤系统,附源码
  • MySQL —— MySQL 程序
  • OpenCV4.8 开发实战系列专栏之 17 - 图像直方图
  • (SAST 检测规-5)不良授权和身份验证
  • 《C++ Primer Plus》学习笔记|第9章 内存模型和名称空间 (24-12-1更新)
  • 深入理解 Docker 在 CI/CD 流程中的应用原理
  • 处理HTTP请求的两种常见方式:多个处理器(Handler)、多个处理函数(HandleFunc),两者有什么区别
  • 传智杯 A字符串拼接
  • vxe-table 树形表格的详细用法、树形表格懒加载
  • 从实战出发,精通Cache设计与性能优化
  • 【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数(二)
  • 机器学习模型从理论到实战|【007-SVM 支持向量机】 SVM的情感分类