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

【java面经thinking】二

目录

redis了解

使用原因

应用场景

数据类型

redis事务

数据持久化

RDB(快照):

AOF(即时更新):

选择方式:

redis快速的原因

redis单线程

单机瓶颈

经典3问

参考博客

redis了解

缓存中间件

使用原因

缓解高并发、提升高可用。因为redis是基于内存的,读写操作要比MySQL的IO操作快得多的多。

应用场景
  • 不变的用户信息:请求从缓存拿,再从数据库
  • 计数器:redis的incr命令实现原子性的递增,例如限制一个接口的请求频率等
  • 热点词,验证码等业务
数据类型

基于键值的方式

String,Hash,List,Set,SortSet

SortSet可以实现排行榜

redis事务

一组命令的集合,相当于一个队列。

所有命令都会被序列化,顺序执行,不会被中断(一致性,排他性,顺序性)。

不存原子性:而Mysql的事务有原子性(全成功或者全失败)。

不存隔离性:不存在脏读,幻读不可重读的现象

数据持久化
RDB(快照):

周期性备份,数据快照形式,fork,cow。fork即创建子进程做数据同步,cow即copy on write ,父子进程数据共享数据段,父进程依旧提供读写服务。

优点: 快照恢复比AOF要快。

缺点:备份大的项目可能停顿1s,对秒杀业务不友好。丢失一个周期时间的数据。

AOF(即时更新):

即时性备份:对每条数据的操作指令作为日志,然后追加到日志文件中,因为是追加的方式,所以不需要去寻址,比较快速。

优点:数据比较完整,写入迅速,可读性强。

缺点:恢复缓慢,每次写入redis的qps都备份较缓慢。

选择方式:

二者兼用。先用RDB快速恢复数据,再使用AOF补全。

redis快速的原因

基于内存:KV数据库,读取O(1)

单线程的:无需关注线程上下文与竞争条件,没有线程切换而产生的cpu消耗

数据结构简单:各自分段间没有关联

多路复用I/O模型,非阻塞IO,多路复用指的是多个请求复用一个线程,当多个连接都有请求时,复用器会轮询所有请求,挨个处理。

qps:每秒查询次数

redis单线程

够快了

单机瓶颈

采用redis-cluster集群来横向拓展,主从同步,读写分离,且可以有多个主节点,每个主节点又可以挂多个从节点。

经典3问

缓存穿透、缓存击穿与雪崩

参考博客

面试干货7——刁钻面试官:关于redis,你都了解什么?_群里有人试过redis吗-CSDN博客

http://www.lryc.cn/news/463537.html

相关文章:

  • 正规方程推导,详细版
  • 【原创】java+ssm+mysql在线文件管理系统设计与实现
  • cocos Creator + fairyGUI 快速入门
  • UICollectionView 的UICollectionReusableView复用 IOS18报错问题记录
  • Ansible Roles与优化
  • Ubuntu 22.04上安装Miniconda
  • 【MySQL】入门篇—SQL基础:数据定义语言(DDL)
  • 电影评论网站开发:Spring Boot技术详解
  • 20240817 全志 笔试
  • laravel 查询数据库
  • 【Codeforces】CF 2009 F
  • GTP4聊天记录中letax保存为word
  • vscode调试编译找不到gcc,只有cl,但是检查cmd是对的,控制面板的路径也更改了
  • 空间解析几何5-空间圆到平面的距离【附MATLAB代码】
  • [已解决] pycharm添加本地conda虚拟环境 + 配置解释器 - pycharm找不到conda可执行文件
  • SENT - Single Edge Nibble Transmission for Automotive
  • 2024年软件设计师中级(软考中级)详细笔记【7】面向对象技术(下)23种设计模式(分值10+)
  • 未来人工智能的发展对就业市场的影响 人工智能在生活中的相关
  • Oracle EBS 中财务模块
  • 基于SSM公廉租房维保系统的设计
  • 【AI大模型】深入Transformer架构:解码器部分的实现与解析
  • 前端html js css 基础巩固3
  • 如在下载自己的需要的rmp包呢
  • Android TextView实现一串文字特定几个字改变颜色
  • 桃子叶片病害分类检测数据集(猫脸码客 第221期)
  • Vue--》掌握自定义依赖引入的最佳实践
  • repo 命令大全详解(第十四篇 repo overview)
  • 【设计模式】深入理解Python中的抽象工厂设计模式
  • 网站建设完成后,多久需要升级迭代一次
  • 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字