消息队列测试场景和redis测试场景

这篇具有很好参考价值的文章主要介绍了消息队列测试场景和redis测试场景。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

消息队列测试场景和redis测试场景


一、消息队列测试场景

1、什么是消息队列。你是怎么测试的?

解题思路:
什么是消息队列。
消息队列应用场景。
消息队列测试点列举。

2、什么是消息队列

Broker:消息服务器,提供消息核心服务
Producer:消息生产者,业务的发起方,负责生产消息传输给 broker。
Consumer:消息消费者,业务的处理方,负责从 broker 获取消息并进行业务逻辑处理。

消息队列测试场景和redis测试场景

3、消息队列的应用场景

异步通信
流量削峰
应用解耦
负载均衡
数据同步

4、消息队列的测试点

所属类型 注意点 测试点
生产者 时序 不同时序推送消息,先后顺序是否和预期一致
数据正确性 内容是否完整
内容是否满足需求
推送 推送失败是否有重试
消费者 正确性 正常消费信息
消息被消费后是否清除
消费者接收到的信息和生产者一致
消费者堵塞,如何处理
幂等(接收到重复消息)

二、redis测试场景

1、Redis 简介

读写性能优异。
数据类型丰富。
Redis 支持数据的备份。
数据自动过期。
发布订阅。
分布式。

2、Redis 的应用场景

读多写少,并发强的场景。(秒杀、微博热搜)
有时间性的业务场景。(短信验证码)
对有序集合数据类型排序。 (排行榜)
对于时效性要求不高。(计数器)
Session 会话缓存。
消息系统。
单线程的特点可以天然用作分布式锁。

3、后端服务和数据库的交互过程(无redis)

消息队列测试场景和redis测试场景

4、后端服务和数据库的交互过程(redis)

消息队列测试场景和redis测试场景

4、Redis 的测试场景与面试题

a、你们的 Redis 使用的是淘汰缓存还是更新缓存,这两者有什么区别?请详细说明。

解题思路:
前提条件:了解缓存的读写流程。

缓存操作流程-读

缓存中有数据。
缓存中没有数据。

消息队列测试场景和redis测试场景

缓存操作流程-写(淘汰缓存)

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

消息队列测试场景和redis测试场景

缓存操作流程-写(更新缓存)

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

消息队列测试场景和redis测试场景

淘汰缓存与更新缓存区别
淘汰缓存:性能较好,至少会出现一个 cache miss(用的多)
更新缓存:性能较差,基本不会出现cache miss

b、Redis 缓存失效问题:怎么定位 Redis 缓存失效问题(缓存坏了)?以及如何解决缓存失效问题?

解题思路:
缓存失效是什么?
缓存不可用之后,大量并发到数据库。

消息队列测试场景和redis测试场景

缓存失效的原因是什么?
缓存过期。
Redis 异常。
网络异常。
缓存更新

消息队列测试场景和redis测试场景

缓存失效研发应该如何处理,测试如何测试?
降级: 禁用部分接口,开放核心接口。
熔断: 禁用部分服务,开放核心服务。

缓存失效相关测试方法

梳理系统中的核心服务列表(通常直接让研发给出对应列表)。
梳理服务中核心接口列表(通常直接让研发给出对应列表)。
模拟 Redis 失效,验证核心服务和核心接口是否还能正常运行。

c、Redis 击穿、穿透区别

Redis 击穿、穿透区别,如何设计用例以及完成测试?

解题思路:
击穿的概念,如何设计测试用例。
穿透的概念,如何设计测试用例。

消息队列测试场景和redis测试场景
击穿的场景的测试用例步骤
获取热 key 的列表(与运维沟通后获取)。
模拟热 key 失效的场景(比如登陆 Redis,直接将热 key 删除)。
查看研发是否有对应的容错机制,保证服务正常运行。

消息队列测试场景和redis测试场景
消息队列测试场景和redis测试场景
穿透的场景的测试用例步骤
不停访问对应服务的接口,传递一个不存在的数据的查询请求。
查看研发是否有对应的容错机制,保证服务正常运行。

击穿与穿透总结文章来源地址https://www.toymoban.com/news/detail-442152.html

类型 穿透 击穿
测试目标 查看研发是否有对应的容错机制,保证服务正常运行。 查看研发是否有对应的容错机制,保证服务正常运行。
测试方法 不停访问对应服务的接口,传递一个不存在的数据的查询请求。 模拟热 key 失效的场景(比如登陆 Redis,直接将热 key 删除)。

到了这里,关于消息队列测试场景和redis测试场景的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis如何实现消息队列

    Redis可以通过List数据结构实现简单的消息队列。在Redis中,我们可以使用 LPUSH 命令将消息推送到列表的左侧,使用 RPOP 命令从列表的右侧获取消息。这样,就可以实现一个先进先出(FIFO)的消息队列。 下面是一个使用Redis实现消息队列的简单示例: 首先,确保你已经安装了

    2024年02月14日
    浏览(18)
  • redis实现消息队列

    消息队列(Message Queue)是一种常见的软件架构模式,用于在分布式系统中传递和处理异步消息。它解耦了发送消息的应用程序和接收消息的应用程序之间的直接依赖关系,使得消息的发送者和接收者可以独立地演化和扩展。 消息队列的基本原理是发送者将消息发送到一个中

    2024年02月09日
    浏览(15)
  • Redis消息队列

    消息队列(Message Queue),字面意思就是存放消息的队列。最简单的消息队列模型包括3个角色: 消息队列:存储和管理消息,也被称为消息代理(Message Broker) 生产者:发送消息到消息队列 消费者:从消息队列获取消息并处理消息 Redis的list数据结构是一个双向链表,很容易

    2024年02月02日
    浏览(19)
  • Redis 消息队列和发布订阅

    采用redis 三种方案: ● 生产者消费者:一个消息只能有一个消费者 ● 发布者订阅者:一个消息可以被多个消费者收到 ● stream模式:实现队列和广播模式 Producer调用redis的lpush往特定key里放消息,Consumer调用brpop去不断监听key。 1、利用redis的链表,存储数据,实现队列模式

    2024年01月18日
    浏览(25)
  • 基于Redis实现消息队列的实践

    消息队列是一种典型的发布/订阅模式,是专门为异步化应用和分布式系统设计的,具有高性能、稳定性及可伸缩性的特点,是开发分布式系统和应用系统必备的技术之一。目前,针对不同的业务场景,比较成熟可靠的消息中间件产品有RocketMQ、Kafka、RabbitMq等,基于Redis再去实

    2024年02月07日
    浏览(17)
  • Java使用Redis实现消息队列

    近期刷Java面试题刷到了“如何使用Redis实现消息队列”,解答如下: 一般使用 list 结构作为队列, rpush 生产消息, lpop 消费消息。当 lpop 没有消息的时候,要适当sleep 一会再重试。若不使用sleep,则可以用指令blpop(该指令在没有消息的时候,它会阻塞住直到消息到来) rp

    2024年02月21日
    浏览(27)
  • 在项目中高并发场景怎么解决消息队列重复消费的解决思路

    1. 前端限制: 防抖和节流:在用户点击“下单”按钮时,使用防抖和节流技术限制用户在短时间内多次提交。 2. 后端接口处理: 分布式锁:当用户下单时,可以使用Redis或ZooKeeper实现的分布式锁,确保同一个用户在同一时间只能有一个订单请求被处理。 3. 订单唯一性设计:

    2024年02月13日
    浏览(19)
  • PHP使用Redis实战实录5:Redis实现消息队列

    PHP使用Redis实战实录系列 PHP使用Redis实战实录1:宝塔环境搭建、6379端口配置、Redis服务启动失败解决方案 PHP使用Redis实战实录2:Redis扩展方法和PHP连接Redis的多种方案 PHP使用Redis实战实录3:数据类型比较、大小限制和性能扩展 PHP使用Redis实战实录4:单例模式和面向过程操作

    2024年02月11日
    浏览(23)
  • SpringBoot+Redis stream实现消息队列

    目录 一、前言 二、下载Redis及引入Redis依赖 三、配置消费者及消费组 四,配置Redsi及初始化stream、消费组、消费者 相较于 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ 等重量级的消息队列中间件,Redis在需求量小的情况下,也可以作为消息中间件来使用。Redis作为消息队列使

    2024年02月16日
    浏览(34)
  • 使用SpringBoot利用Redis实现消息队列

    随着互联网的发展,消息队列的应用越来越广泛。消息队列可以解决系统之间的异步通信问题,提高系统的可靠性和可扩展性。在Java开发中,Redis作为一种高性能的缓存和消息队列系统,被广泛应用。本文将介绍如何使用SpringBoot中利用Redis实现消息队列。 在Redis中,List是一种

    2024年02月14日
    浏览(19)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包