redis 常见的面试题
时间:2022-07-26
本文章向大家介绍redis 常见的面试题,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Redis雪崩
概念
在某个时间点,所有的key失效,此时突然有6000条数据请求,去请求缓存,由于key失效,此时这6000的请求同时去直接访问数据库,数据库同一时间内无法坑住大量的请求压力,导致数据库崩了
解决方法
设置key的失效时间为随机的,不会出现所有的key都同时失效
Redis缓存穿透
概念
是指数据库和缓存中都不存在这个数据,而此时用户不断的在请求改服务,此时可能会导致数据库崩塌(用户请求查询条件不合理,例如数据库id是从0开始,用户一直请求查询数据库中id=-1)
解决方法
在接口调用的是时候对接口进行鉴权校验,过滤掉不合理的参数,直接返回null,过滤不合理的请求
if(key){
//获取缓存数据
get(key);
}else {
//从数据库拿数据
getDB(); null
//避免出现重复调用的情况 查询到的为空 想缓存中存入null
set(key,null);
}
Redis缓存击穿
概念
缓存击穿,是指一定时间内多个服务使用同一个key进行数据请求,也称为并发,由于同时间内抗不住如此大的访问量致使缓存服务器蹦线,数据请求直接请求数据库,导致数据库崩了
解决方法
加锁 限制同一段时间内请假的数据 比如放行1000次请求 剩下的都是进入等待状态
分布式锁
redis setnx setex
set(key,value,nx,xp,timeout)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法