面试高频率问答题目

索引:

        主键索引:表的id   (唯一 且  不能为空)

        唯一索引:表User 假设有account 字段 ,用户名不重复  (唯一 可以为空)

        复合索引:where() 的条件 用户名,密码 (无要求,无要求)

锁:

        悲观锁:(两个人同时想要去上厕所 只有一个厕所 , 只能A,B中的一个先上厕所即事务, 当上厕所的人 解决了后  剩下的人才能使用厕所)

例子:
假设商品ID为1的商品只剩下一件库存。用户A和用户B几乎同时发起购买这个商品的请求。
用户A开始一个事务,并执行SELECT * FROM products WHERE id = 1 FOR UPDATE;这个SQL语句。这个语句锁住了商品ID为1的记录,其他事务不能修改这个记录直到用户A的事务结束。
用户B开始一个事务,并试图执行同样的操作。但是,由于用户A已经加锁了该商品,用户B的查询会被阻塞,直到用户A释放锁。
悲观锁确保了用户A和用户B不会同时获得这件商品的购买资格,只有一个用户能够成功购买。

        乐观锁:(在车站进站的时候,检票机【商城或者商品 】 在检测到用户 刷省份证的后  会进行 放行的行动    这个时候 A用户【大人】  B用户 【未成年 无身份证】 同时进入 。  在商品来讲就是超卖  原始库存10   即两个请求同时进行 在商品的数据的库存中-1  但是只会减1 【此时的库存为9】    )

用户A开始一个事务,并读取了商品ID为1的记录,此时不加锁。记录显示有10件库存。
用户B也开始一个事务,并读取了同样的记录,同样不加锁。记录也显示有10件库存。
用户A更新商品ID为1的记录的stock_quantity减1,并尝试提交事务。
用户B也更新商品ID为1的记录的stock_quantity减1,并尝试提交事务。
在用户A和用户B都尝试提交事务时,数据库会检查stock_quantity字段的值是否有冲突。由于两个人都减少了1件库存,现在库存量为9件。数据库会检查自事务开始以来数据是否有过变更。在这个例子中,由于两个人读取的数据是一样的,所以他们都认为库存量是10件,并且都进行了减1的操作。因此,他们都会成功提交事务,并不会因为库存量为9件而失败。

商品超卖问题  使用easyswoole 的消息队列来解决。

事务:事务是数据库中的一个重要功能,它允许一组数据库操作要么全部成功,要么全部失败。

rabbitmq:
RabbitMQ 是一个开源的消息队列系统,它实现了高级消息队列协议(AMQP)。AMQP 是一种消息传递中间件的标准协议,它定义了消息的传输、路由和队列机制。RabbitMQ 提供了跨语言和跨平台的客户端库,支持多种消息传递模式,包括点对点(Point-to-Point)、发布/订阅(Publish/Subscribe)和路由(Routing)

memache:

异步和同步是消息传递和数据处理中的两种常见模式,它们在不同的使用场景中有不同的优势和应用。
   异步
使用场景:
高并发处理:当系统需要处理大量并发请求时,异步处理可以避免阻塞,提高系统吞吐量。
非实时性要求:对于不要求实时响应的场景,如日志收集、数据分析等,异步处理可以background执行,不影响主线程。
解耦合:异步通信可以减少系统组件之间的耦合,使得系统更加模块化和灵活。
扩展性:异步模式便于扩展,可以通过增加消费者来处理更多的消息。
  优点:
提高系统响应速度和吞吐量。
减少资源占用,因为多个操作可以并行处理。
增强系统的伸缩性,可以通过增加处理线程或实例来处理更多的任务。
   缺点:
可能会引入复杂性,如消息队列的管理、消费者数量的调整等。
需要处理消息的顺序性和一致性问题。
可能会增加系统的复杂性,如错误处理、重试逻辑等。
   同步
使用场景:
实时性要求高:如在线交易处理、实时通信等,需要立即得到响应。
操作重要:对于关键操作,需要确保执行完毕才能进行后续操作。
数据一致性要求高:在需要确保数据一致性的场景中,同步操作可以保证操作的顺序性和一致性。
   优点:
保证操作的顺序性和一致性。
易于理解和实现,尤其是对于简单的单向操作。
适合需要即时反馈的场景。
  缺点:
可能会降低系统的并发能力,因为一个操作可能会阻塞其他操作。
资源占用较大,因为操作需要依次执行。
系统的伸缩性较差,因为增加负载通常需要增加服务器资源。

新建目录后,要执行的

php easyswoole.php server start
composer dump-autoload

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

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

相关文章

MySQL:函数

提醒: 设定下面的语句是在数据库名为 db_book里执行的。 创建user_info表 注意:pwd为密码字段,这里使用了VARCHAR(128)类型,为了后面方便对比,开发项目里一般使用char(32),SQL语句里使用MD5加密函数 USE db…

【博图TIA-Api】通过Excel自动新建文件夹和导入FB块

【博图TIA-Api】通过Excel自动新建文件夹和导入FB块 说明思路准备获取Excel表格内文件名和FB块名等信息新建文件夹部分筛分获取的文件夹数据,去掉重复内容创建文件夹 导入FB块导出FB块的xml文件查找需要放置的文件夹导入块 说明 续上一篇文章,这次是根据…

多线程 --- [ 线程池、线程安全、其他常见的锁 ]

目录 1. 线程池 模块一:线程的封装 模块二:线程池的封装 模块三:互斥量的封装 (RAII风格) 模块四:任务的封装 模块五:日志的封装 模块六:时间的封装 模块六:主函数 模块七&#xff1a…

备战蓝桥杯---状态压缩DP进阶题1

我们来看一看一道比较难的问题(十分十分的巧妙): 显然我们应该一行一行放,又竖的会对下一行产生影响,我们令横着放为0,竖着放的上方为1. 对于下一行,前一行放1的下面为0,但是会出现…

【Redis | 第九篇】一篇文章看懂Redis持久化机制

文章目录 9.一篇文章看懂Redis持久化机制9.1Redis的两种持久化机制9.1.1为什么有持久化? 9.2RDB机制9.2.1介绍9.2.2触发机制(1)save命令触发(2)bgsave命令触发(3)自动触发 9.2.3执行流程9.2.4优…

C++知识点总结(22):模拟算法真题 ★★★★☆《卡牌游戏》《移动距离》

一、卡牌游戏 1. 审题 题目描述 A , B , C A,B,C A,B,C 三人在玩一个卡牌游戏,规则如下: 游戏开始时, 3 3 3 人分别会得到若干张手牌, 每张牌上写着 a,b,c 中某一个字母。手牌的顺序严格按照输入顺序排列&#xff0c…

前端【技术类】资源学习网站整理(那些年的小网站)

学习网站整理 值得分享的视频博主:学习网站链接 百度首页的资源收藏里的截图(排列顺序没有任何意义,随性而已~),可根据我标注的关键词百度搜索到这些网站呀,本篇末尾会一一列出来,供大家学习呀 …

彻底搞懂回溯算法(例题详解)

目录 什么是回溯算法: 子集问题: 子集问题II(元素可重复但不可复选): 组合问题: 组合问题II(元素可重复但不可复选): 排列问题: 排列问题II(元素可重复但不可复选): 什么是回溯算法: 「回溯是递归的副产品&…

最小生成树---Kruskal算法

最小生成树定义: 给定一张边带权的无向图 G(V,E),其中 V 表示图中点的集合,E 表示图中边的集合。 由 V 中的全部 n 个顶点和 E 中 n−1 条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G…

leetcode hot100 每日温度

在本题中,我们是通过单调栈来解决的,因为我们采用了栈的数据结构,并且,栈内存储的元素是单调的。 本题我们考虑,将气温数组元素的下标存入栈中,首先初始化要把0放入,0是下标的意思。然后我们拿…

华为HCIP Datacom H12-821 卷4

1.单选题 下面哪些策略或工具不能够应用于 OSPF: A、access-list B、prefix-list C、route- Policy D、as-path filter 正确答案: D 解析: as-path-filter命令用来创建AS路径过滤器,OSPF属于IGP协议,不涉及到AS号。 2.单选题…

【python基础学习05课_for循环以及双重for循环】

FOR循环 一、认识循环-while 1、循环条件不能超出列表长度 当i 1&#xff0c;while i < len(lst1) 时&#xff0c;i 3后, 打印print&#xff08;lst[3]&#xff09;小宋老师&#xff0c; 继续1, i 4, 4不小于 len(lst1)&#xff0c;打破循环。 2、循环条件超出列表长度报错…

JMeter元件和采样器一览

Apache JMeter是一个强大的开源负载测试工具&#xff0c;用于性能和功能测试。JMeter提供了丰富的元件和采样器&#xff0c;使得它能够模拟复杂的测试场景和高并发的用户请求。以下是JMeter中常用的一些元件和采样器的介绍和讲解&#xff1a; 测试计划元件 测试计划&#xff0…

latex报错I was expecting a `,‘ or a `}‘的解决办法

解决办法——经过检查在ref22后面缺少一个逗号 总结 当你在使用LaTeX时遇到“I was expecting a , or a }”这样的错误&#xff0c;这通常意味着LaTeX在解析你的代码时&#xff0c;预期在某个位置看到一个逗号&#xff08;,&#xff09;或一个大括号&#xff08;}&#xff09;…

每日一题 2369

2369. 检查数组是否存在有效划分 题目描述&#xff1a; 给你一个下标从 0 开始的整数数组 nums &#xff0c;你必须将数组划分为一个或多个 连续 子数组。 如果获得的这些子数组中每个都能满足下述条件 之一 &#xff0c;则可以称其为数组的一种 有效 划分&#xff1a; 子数…

PTA 1010 一元多项式求导

1010 一元多项式求导 (25分) C/C - 知乎 (zhihu.com) #include<stdio.h> int main(){ int x,n; scanf("%d %d",&x,&n); if(n0)printf("%d %d",0,0); //n0 说明是常数&#xff0c;不需要求导 else printf("%d %…

STM32 串口通信

串口发原理 在stm32每个串口内部有发送寄存器和发送移位寄存器。 当调用HAL_UART_Transmit 时&#xff0c;cpu会将发送的数据放入发送寄存器中。发送移位寄存器会将数据转换成电平的高低&#xff0c;从TX发出。 1、轮询模式配置、发送与接收 轮询模式时cpu会不断检测发送数…

嵌入式中汇编语言的基本实现

大家好&#xff0c;今天给大家分享&#xff0c;GNU汇编的语法。 第一&#xff1a;汇编简介 GNU 汇编语法适用于所有的架构&#xff0c;并不是 ARM 独享的&#xff0c;GNU 汇编由一系列的语句组成&#xff0c; 每行一条语句&#xff0c;每条语句有三个可选部分&#xff0c;如下…

小白学视觉 | 详解遗传算法 GA(Python实现代码)

本文来源公众号“小白学视觉”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;详解遗传算法 GA&#xff08;Python实现代码&#xff09; 转自&#xff1a;机器之心 英文&#xff1a;www.analyticsvidhya.com/blog/2017/07/introduc…

在线上传解压PHP文件代码,压缩/压缩(网站一键打包)支持密码登录

在线上传解压PHP文件代码&#xff0c;压缩/压缩(网站一键打包)支持密码登录 资源宝分享&#xff1a;www.httple.net 如果你没有主机控制面板这个是最好选择&#xff0c;不需要数据库&#xff0c;上传当控制面板使用&#xff0c;无需安装任何扩展&#xff0c;安全高&#xff0c;…