首页 > 其他分享 >软件测试学习记录(六)

软件测试学习记录(六)

时间:2024-12-11 15:00:14浏览次数:5  
标签:缓存 记录 Redis 数据库 redis 学习 数据结构 数据 软件测试

Redis缓存数据库

1.什么是redis?


Redis是当前使用最广泛的NoSQL,而就Redis技术而言,它的性能十分优越,可以支持每秒十几万次的读/写操作,其性能远超数据库,并且还支持集群、分布式、主从同步等配置,原则上可以无限扩展,让更多的数据存储在内存中,更让人欣慰的是它还支持一定的事务能力,这保证了高并发的场景下数据的安全和一致性。


它是一种非关系性数据库,是介于接口服务端和数据库的中间层。


比如一个査询接口,第一次査询从数据库査数据,査完之后我们把数据存入redis缓存中,第二次査就可以直接从缓存中读取数据,这就是它的用法。

2.什么数据存入redis缓存?


主要是一些复杂操作,耗费时间长的,比如数据库查询要100ms,但是redis只需要20ms。而且,在接下来的几个小时内,这个数据都不会变化,我们就可以存入缓存数据库,为什么对时间有要求呢?因为缓存中的数据一般都是有过期时间的,这个开发写代码可以设置。

3.redis为什么快?

redis是存在内存中的,数据库是存在磁盘中的。

4.为什么使用redis,它的优势是什么?

主要有以下几个原因:

1.读取速度快,因为缓存是写入内存中,普通数据库数据是写在磁盘中的,基于内存的相比于磁盘速度是快很多的,但是也有缺点,比如断电之后,内存中的数据会消失,磁盘则不会。

2.高并发,减轻数据库压力。一旦涉及大数据量需求,比如一些商品抢购等,或者主页瞬间访问量大的时候,磁盘读写上千上万次,有性能弊端。容易造成数据库瘫痪,服务器宕机。数据库顶不住,需要缓存分担一部分压力。

3.提升tps

5.redis的五种数据结构(常问)

字符串,哈希,列表,集合,有序集合

6.redis不同数据结构使用场景有哪些?

Redis支持多种数据结构,每种数据结构都有其特定的使用场景。以下是Redis不同数据结构的使用场景:
1.字符串(String):字符串是Redis中最基础的一种数据结构,适合存储用户数据,如用户ID、用户名、密码等。
2.列表(List):列表是一个有序的字符元素序列,适合存储多值数据,如最新动态历史记录等。
3.哈希(Hash):哈希特别适合存储与对象相关的多个字段和值。例如一个用户对象的所有信息(ID、姓名、年龄、地址、电话等)都存放在同一个哈希中,则可以方便的通过哈希的键获取这个用户对象的所有信息。

4.集合(Set):集合是一个无序的字符元素集合,特别适合进行数据去重、交集、并集和差集等操作。例如存储用户ID、关注者列表等

5.有序集合(Sorted Set):有序集合提供了另一种数据去重和排序的方式,它是一个有序的集合,存储的元素都可以有一个对应的分数(score),这个分数可以用来排序、查找和去重。例如存储文章和分值,可以按照点赞数或时间排名。

以上是Redis不同数据结构的一些典型使用场景,但不局限于此。在实际的应用中,数据结构的选择应该根据具体场景和需求进行综合考虑和优化。

7.雪崩,缓存穿透,缓存击穿

雪崩机制

假设数据库访问量是每秒5千请求,redis数据库可以抗住每秒4千请求。但是redis数据库因为意外宕机,那么这五千个请求就会全部打到数据库上。


这个时候数据库就挂掉了,这个时候如果没有特别的方案来处理这个故障,DBA直接重启数据库,那么马上又会被新的流量打死,这个就是redis雪崩机制。

缓存穿透

假设一个系统每秒5千请求,但是有4千是黑客恶意攻击发起的,缓存中查不到,数据库中也查不到。
比如说,缓存数据库id都是从1开始的,但是黑客发过来的请求id都是负数,所以缓存中查不到,就会直接打到数据库,数据库就会挂掉,这种就是缓存穿透。


解决方案:
对于查询不到的,统一设定一个默认值返回

缓存击穿

这个就是说某个缓存数key值,访问非常频繁,一直处于高并发访问,但是因为一些原因这个key失效,那么数据流量就把缓存击穿,瞬间打到数据库上,就像在屏风上凿开一个洞。


比如说一些,大key,热key


redis数据存储方式都是key,跟value的形式

标签:缓存,记录,Redis,数据库,redis,学习,数据结构,数据,软件测试
From: https://blog.csdn.net/xxxianfeng/article/details/144399048

相关文章

  • js逆向学习-1 逆向rsa简单加密
    RSA加密Rsa加密包含一个key和一个mode这个mode默认10001,也可以修改观察发送的数据首先点击登录选择xhr这个筛选模块,可以看到这里面只有这个check的数据请求,然后查看发送的数据,可以看到这里的密码是进行加密的然后记录这些值打断点知道了请求和加密的数据,现在就是去......
  • 【深度学习框架学习|Keras Layers API详解1】Keras最简单的深度学习框架!你对基于Keras
    【深度学习框架学习|KerasLayersAPI详解1】Keras最简单的深度学习框架!你对基于KerasLayersAPI了解多少?来看看吧【深度学习框架学习|KerasLayersAPI详解1】Keras最简单的深度学习框架!你对基于KerasLayersAPI了解多少?来看看吧文章目录【深度学习框架学习|Keras......
  • 记录下Pinia持久化不生效问题
    问题描述:系统登录成功需要将后台返回的token持久化保存到localStorge中,这里使用pinia-plugin-persistedstate,在登陆成功后登录信息一直没有持久化到localStorge中。代码如下:1.配置持久化importtype{App}from'vue'import{createPinia}from'pinia'importpiniaPlug......
  • Win10虚拟机安装Docker解决Docker Engine Stopped问题记录
    跟着网上的帖子开启WSL2安装DockerDesktop,但是无法启动Docker,一直【DockerEnginestopped】继续跟着网上的帖子解决问题,检查电脑各种配置都搞一通后还是无法解决。无法定位到问题出在哪个方面,恼凶成怒打算卸载,发现卸载也出现问题卸载不掉,,,,,,,,,,冷静下来,寻找问题关键点。......
  • makefile学习
     实例1 SHELL:=/bin/bash#\1.ifneq只能在规则里使用,不能在函数里使用\2.函数和依赖的方式哪个更好:\1.函数:$(callfunc,args...),无论all是否需要构建都会立即执行;\2.依赖:all:a1a2,Make决定是否需要重新构建,取决于a1和a2是否比all更新TARG......
  • 强化学习(ChatGPT回答):Reward Landscape —— 奖励分布图
    奖励景观(机器学习、强化学习)在强化学习中,RewardLandscape指的是奖励函数随着状态和行为的变化所形成的空间结构。它可以帮助理解智能体如何通过探索奖励的分布来优化策略。翻译:奖励景观;奖励分布图。例句:Theagentlearnstonavigatetherewardlandscapeeffectivel......
  • 大模型技术学习过程梳理
    “学习是一个从围观到宏观,从宏观到微观的一个过程”学习大模型技术也有几个月的时间了,之前的学习一直是东一榔头,西一棒槌,这学一点那学一点,虽然弄的乱七八糟,但对大模型技术也算有了一个初步的认识。因此,今天就来整体梳理一下大模型技术的框架,争取从大模型所涉及的理论,技......
  • java学习笔记
    Java学习笔记第1章:Java语言概述1.1Java的历史与发展略1.2Java的特点略1.3Java的运行环境(JRE)和开发工具包(JDK)略1.4第一个Java程序(HelloWorld示例)略1.5Java程序的基本结构Java程序由以下几个部分组成:包声明:定义类所属的包。packagecom.e......
  • 【计算机毕设选题推荐】基于学生兴趣的学习资源推荐系统的设计与实现 【附源码+讲解+
    ✍✍计算机毕设编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • 机器学习在现代相机中的应用
    由人工智能领域的三位巨擘——YannLeCun、YoshuaBengio和GeoffreyHinton联合在《自然》杂志上发表的综述文章《深度学习》中提到,“机器学习技术正越来越多地融入到相机和智能手机等消费产品中”。对此,笔者深感好奇,并进行了深入的研究和资料搜集。结果令人震撼,现代相机中......