工作中redis相关知识总结

在这里插入图片描述


这里写目录标题

  • 一、Redis数据持久化概念
  • 二、redis数据类型
  • 三、redis缓存的应用流程
  • 四、什么样的数据适合存放到redis中?
    • 1、什么情况下,redis中会没有数据?
    • 2、redis缓存项目在测试中的注意事项
      • a、更新缓存
      • b、淘汰缓存
  • 五、什么是缓存击穿
    • 1、缓存失效的两种情况
    • 2、缓存数据有效期到来的那一瞬间举例
  • 六、什么是缓存穿透
    • 1、如何测试验证?
  • 七、缓存雪崩
    • 1、缓存雪崩的原因
    • 2、缓存雪崩风险
    • 3、解决方案
  • 八、redis 在你们项目中具体的作用,还有哪些常用的功能
    • 1、权限的数据的特点
    • 2、django自动化测试平台以及python开发的平台,需要异步执行任务或者定时执行任务
      • 1、选择一个broker
      • 2、安装redis容器
  • 九、涉及redis相关的内容怎么测试?
    • 1、故障注入

一、Redis数据持久化概念

持久化在Redis中的工作原理就是将你存储在缓存中的数据异步的保存在你的磁盘中实现持久存储。
当电脑或者服务器发生宕机时,我们的内存会被清空,但是存储在磁盘中的数据不会丢失,
当我们再次打开Redis时,磁盘中的数据集就会再次同步到我们的Redis中,也就是从磁盘中再次回到内存中。

二、redis数据类型

String
Hash
List
Set
ZSet

三、redis缓存的应用流程

在这里插入图片描述

四、什么样的数据适合存放到redis中?

读的频率非常高、更新频率较少的数据

应用程序从redis中微秒获取数据

1、什么情况下,redis中会没有数据?

a、第一次查询,数据需要从数据库查询再缓存起来
b、redis数据过期。数据查询不到了
c、redis挂了。整个服务都访问不了了,只能从数据库里面查询。

2、redis缓存项目在测试中的注意事项

a、更新缓存

缓存操作流程-写(更新缓存)
优点: 基本不会出现cache miss的情况。
缺点: 每次更新数据库都更新缓存,比较影响性能。

在这里插入图片描述

b、淘汰缓存

优点: 操作简单,性能比较好。
缺点:至少会出现一个 cache miss。(当大量的请求访问数据库时,数据库压力很很大)

在这里插入图片描述

五、什么是缓存击穿

在缓存过期的一瞬间,同时有大量的请求打进来,由于此时缓存过期了,所以请求最终都会走到数据,造成瞬间数据库请求量大、压力剧增,甚至可能打垮数据库。

1、缓存失效的两种情况

  • a、高峰期大面积缓存key失效。(所有请求全部访问后端数据库)
  • b、局部高峰期,热点缓存key失效(导致海量的请求直接击穿数据库)

2、缓存数据有效期到来的那一瞬间举例

  • 1、突发重要热点事件
  • 2、春节发红包
  • 3、电商降价、抢购、促销活动

在这里插入图片描述

六、什么是缓存穿透

访问一个redis缓存和数据库都不存在的key,此时会直接打到数据库上,并且查不到数据,没法写到redis缓存,所以下一次同样会打到数据库上。
缓存起不到作用,流量大时数据库可能会被打挂,此时缓存就好像被穿透了一样,起不到任何作用。

1、如何测试验证?

使用Jmeter等压测工具进行模拟测试

七、缓存雪崩

缓存雪崩是指缓存失效后导致服务大面积崩溃的后果

1、缓存雪崩的原因

缓冲击穿、缓存穿透、缓存服务不可用

2、缓存雪崩风险

因为缓存服务器挂掉或者热点缓存失效,从而导致海量请求去查询数据库,导致数据库连接不够用或者数据库处理不过来,从而导致整个系统不可用。
数据库服务器压力大,依赖数据库的其他系统就会面临崩溃风险。

3、解决方案

缓存击穿

  • 过期事件打散:高峰期大面积的key不要全部一起失效;或者直接不失效。
  • 热点数据不过期:针对单个热点数据。
  • 互斥锁:万一实在是拿不到缓存了,并发控制。
  • 缓存降级:redis服务器挂了,缓存备份,数据兜底。

缓存穿透

  • 业务规则校验:日期范围、业务规则校验不符合直接返回。
  • 数据格式校验:ID(特意设计)、前16位表示事件,中间3位表示业务分类代码,后面3位表示随机数
  • 布隆过滤器:把大批量的请求参数的真实值,压缩放到过滤器里,每次请求的时候,通过过滤器进行验证。
  • IP黑名单限流:禁止访问。

八、redis 在你们项目中具体的作用,还有哪些常用的功能

1、权限的数据的特点

需要去数据库中频繁的读和写,为了项目提高运行效率,可以把用户的权限在每次登录的时候都缓存到redis中。这样的话,权限判断的中间件就可以方便的从redis中得到当前用户的所有权限,从而判断。
对于那些数据量大,并且需要频繁的读写,一定需要做缓存的

详细的实现过程请查看博客:https://blog.csdn.net/YZL40514131/article/details/128599386

2、django自动化测试平台以及python开发的平台,需要异步执行任务或者定时执行任务

1、选择一个broker

使用celery首先需要选择一个消息队列。安装任意你熟悉的前面提到的celery支持的消息队列。

2、安装redis容器

因为redis默认没有密码,使用云服务器部署redis容器时需要设置密码。新建配置文件/root/redis.conf编写如下配置:

requirepass pythonvip

然后运行如下命令创建容器:

sudo docker run -d -p 9000:6379 -v /home/ubuntu/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis:alpine redis-server /usr/local/etc/redis/redis.conf

redis的连接url格式如下

redis://:password@hostname:port/db_number

详细的实现过程请查看博客:https://blog.csdn.net/YZL40514131/article/details/132245242

九、涉及redis相关的内容怎么测试?

1、故障注入

  • redis故障降级测试
    • 将redis中的数据清空。
    • 获取某个数据,看能否击穿redis去数据中获取到数据。
    • 检测获取到数据是否又保存到数据库中了。
    • 启动redis,恢复数据了,测试能否从redis中获取到正确的数据
    • redis崩溃了,能佛从数据库中获取到数据

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/318257.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT学习笔记——大模型基础理论体系

1、ChatGPT的背景与意义 近期,ChatGPT表现出了非常惊艳的语言理解、生成、知识推理能力, 它可以极好的理解用户意图,真正做到多轮沟通,并且回答内容完整、重点清晰、有概括、有条理。 ChatGPT 是继数据库和搜索引擎之后的全新一代的 “知识表示和调用方式”如下表所示。 …

三种方式在ASP.NET Core中实现代理功能请求获取数据的接口(以请求百度统计数据接口为例)

一、定义请求数据属性 TargetUrl参数是目标接口的URL,RequestDataArray参数是要发送的请求数据列表 //定义属性:TargetUrl参数是目标接口的URL,RequestDataArray参数是要发送的请求数据列表public class ToResponseBody{[JsonPropertyName("Target…

用户管理第2节课--idea 2023.2 后端--实现基本数据库操作(操作user表) -- 自动生成 --【本人】

一、插件安装 1.1 搜索插件 mybatis 安装 1.2 接受安装 1.3 再次进入,说明安装好了 1.4 与鱼皮不同点 1)mybatis 版本不一致 鱼皮: 本人: 2)鱼皮需重启安装 本人不需要 1.5 【需完成 三、步骤,再来看】 …

阶段五-JavaWeb综合练习-学生管理系统

一.项目说明 1.前台 (用户使用) 前端,后端 2.后台 (管理员使用) 前端,后端 3.该项目为后台管理系统 项目开发流程: 1.需求分析 1.1 登录功能 用户访问登录页面输入用户名和密码,并且输入验证码。全部输入正确后点击登录,登录成功跳转主页面;登录…

Allins 官网上线,标志铭文赛道正式进入 AMM 交易时代

“Allins 正在通过全新的 AMM 方案为BRC20及多链铭文资产拓展 DeFi 场景,官网的全新上线意味着铭文资产的交易正式进入 AMM 时代。”

单片机外设矩阵键盘之线反转法识别原理与示例

单片机外设矩阵键盘之线反转法识别原理与示例 1.概述 这篇文章主要介绍单片机接收 4X4矩阵键盘发出的指令,做出对应的反馈。其中主要介绍矩阵键盘线反转方式的识别原理和实操。 2.矩阵键盘线反转识别原理 2.1.矩阵键盘硬件接线原理 矩阵键盘的硬件接线方式有多种…

Linux网络编程学习心得.4

1.epoll工作模式 水平触发 LT 边沿触发 ET 因为设置为水平触发,只要缓存区有数据epoll_wait就会被触发,epoll_wait是一个系统调用,尽量少调用 所以尽量使用边沿触发,边沿出触发数据来一次只触发一次,这个时候要求一次性将数据读完,所以while循环读,读到最后read默认带阻塞…

LLVM(简介)

历史 LLVM(low level virtual machine)起源于伊利诺伊大学的一个编译器实验项目,目前已经发展成一个集编译器和工具链为一体的商业开源项目,因此其英文名称的含义被扩大,不再仅仅是字面意思。其创始人为 Chris Lattner。LLVM项目遵循的开源许…

飞腾Ubantu22.04.3安装OpenNebula测试

1.概述 因OpenneBula官方镜像源只有AMD架构的镜像包不存在ARM的镜像包,借此用源码编译进行测试。 2.官网github地址 下载解压存放在服务器上: https://github.com/OpenNebula/minione/blob/master文件目录: 3.安装依赖包 sudo apt -y …

模拟Spring事件监听机制

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 之前我们一起学习了Spr…

基于ssm+vue服装商城购物系统

摘要 在基于SSM框架和Vue.js的服装商城购物系统中,整合了多种先进的技术,为电子商务领域的发展提供了有力支持。该系统不仅仅是技术层面的整合,更是对于业务流程和用户体验的深入考虑。以下是对该系统扩展的一些关键方面的讨论,以…

AUTOSAR中 CAN总线数据通过COM模块收发流程

目录 AUTOSAR中CAN总线数据通过COM模块收发流程1、AUTOSAR中 CAN总线数据通过COM模块发送流程2、AUTOSAR中 CAN总线数据通过COM模块接收流程 AUTOSAR中CAN总线数据通过COM模块收发流程 printf("欢迎关注公众号:车载嵌入式探索者,博主建立了一个车规…