字节一面面经

1.redis了解吗,是解决什么问题的,redis的应用?

Redis 是一种基于内存的数据库,常用的数据结构有string、hash、list、set、zset这五种,对数据的读写操作都是在内存中完成。因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景

2.mysql慢查询

(1)首先需要开启慢查询,set global slow_query_log=‘ON’; 指定慢查询日志SQL执行时间阈值。(默认是10s,我设置成了1s)。

(2)查看慢查询日志,里面会有一些信息:查询时间、扫描行数、具体的sql语句等。

(3)使用explain分析慢查询,

type(查询类型):all、index(遍历索引树)、range(检索给定范围的行,使用一个索引)

rows(行数):不精确的扫描行数

key(使用的索引):使用的索引

Extra:(额外说明):using index(索引覆盖)、using where(回表)

(4)优化:看看是不是索引失效、使用覆盖索引、分库分表

3.索引失效场景

避免模糊查询%开头、not in改用 not exists、避免where左侧表达式函数运算、索引列做了计算、函数、类型转换操作、联合索引要能正确使用需要遵循最左匹配原则、OR 前的条件列是索引列,而在 OR 后的条件列不是索引列(union代替or)

4.数据库事务

(1)特性:

原子性:要么全做,要么全不做。一致性:从一个正确状态变成另一个正确状态。

隔离性:事务之间相互不干扰。持久性:对数据库的修改永久。

(2)并行事务错误:脏读:一个事务读到了另一个事务未提交的数据

​ 不可重复读:事务1读之后事务2又改了,事务1又读了。两次结果不一样。

​ 幻读:事务1读之后事务2又改了,事务1又读了。两次的数量不一样

5.表太大怎么处理

分库(存在不同的数据库)分表(拆表)

垂直分库可以简单理解为根据业务分库。垂直分表就是根据字段分表。可以采取的策略是将经常访问且短的字段拆成一个表,长或者不经常访问的放一个表。

水平:水平分库就是将单库中的某个表存在不同的数据中,可以定义一定的规则来决定存那个数据库,比如hash操作。

分库分表工具:sharding-jdbc等

6.session和cookie的区别

session存在服务器,cookie存在浏览器。session比cookie大,cookie通常是4MB,sesion收到服务器内存限制。ccokie可以设置过期时间,也可以设置会话cookie,关闭浏览器就自动删除。session在客户端在最大无活动等待时间内没有任何请求就失效。

7.经典的登录流程思路

(1)基于 Session 的方案中,登录成功后,服务端将用户的身份信息存储在 Session 里,并将 Session ID 通过 Cookie 传递给客户端。后续的数据请求都会带上 Cookie,服务端根据 Cookie 中携带的 Session ID 来得辨别用户身份。

(2)基于 Token 的方案中,服务端根据用户身份信息、签发时间、有效期等生成 Token,发放给客户端。客户端收好 Token,并在之后的数据请求中带上 Token,服务端接到请求后校验并解析 Token 得出用户身份。

使用API网关验证token、或者拦截器验证token、或者前端每次请求时都发送验证token的请求。

在单点登录的场景下,token将通过url回传给应用。

用户携带token请求登出,登出接口会对token清除,返回401,客户端自动跳转到登录界面。

8.求一个字符串的最长无重复字符子字符长度

在这里插入图片描述

  public static int lengthOfLongestSubstring(String s) {int ans=0;HashSet set=new HashSet<Character>();int slow=0,fast=0;int len=0;while (fast<s.length()){if(!set.contains(s.charAt(fast))){set.add(s.charAt(fast));fast++;len=fast-slow;ans=len>ans?len:ans;}else {while (slow<=fast&&set.contains(s.charAt(fast))){set.remove(s.charAt(slow));slow++;len=fast-slow;}}}return ans;}

9.sso单点登录,单点登录是什么意思、怎么实现?

单点登录就是在一个系统完成认证后,其它的系统无需登录就能可以访问。

有系统A、B和sso认证中心。当系统A第一次登录时,重定向到SSO并完成认证,返回凭证ticket。再用户访问系统B时,都会去sso系统验证这个ticket。

可以通过cookie、token方式共享凭证。

10.64位操作系统和32位操作系统是什么意思

  • 32位和64位可以指CPU、操作系统或应用软件,只有三者都匹配才能发挥效果。
  • 32位的CPU一次可以处理32位数据,64位的CPU一次可以处理64位数据,所以64位的CPU数据处理能力更强。
  • 32位的操作系统最多支持4G的内存,64位的操作系统可以支持更多的内存,所以64位的操作系统内存寻址能力更强。
  • 32位的操作系统只能运行32位的软件,64位的操作系统可以运行32位和64位的软件,所以64位的操作系统软件兼容性更好。

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

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

相关文章

第三期书生大模型实战营之XTuner微调个人小助手认知

基础任务 使用 XTuner 微调 InternLM2-Chat-1.8B 实现自己的小助手认知&#xff0c;记录复现过程并截图。 任务结果截图 1. 创建虚拟环境 # 安装一些必要的库 conda install pytorch2.1.2 torchvision0.16.2 torchaudio2.1.2 pytorch-cuda12.1 -c pytorch -c nvidia -y # 安…

2024华数杯数学建模竞赛选题建议+初步分析

提示&#xff1a;DS C君认为的难度&#xff1a;C<A<B&#xff0c;开放度&#xff1a;A<B<C。 综合评价来看 A题适合对机械臂和机器人运动学感兴趣的同学&#xff0c;尤其是有一定编程和优化算法基础的同学。不建议非相关专业同学选择。 B题挑战较大&#xff0…

Go语言实现多协程文件下载器

文章目录 前言流程图主函数下载文件初始化分片下载worker分发下载任务获取下载文件的大小下载文件分片错误重试项目演示最后 前言 你好&#xff0c;我是醉墨居士&#xff0c;最近在开发文件传输相关的项目&#xff0c;然后顺手写了一个多协程文件下载器&#xff0c;代码非常精…

用于遥感数据处理的python脚本

编辑&#xff1a;我不爱机器学习 今天给大家分享一组用于遥感处理的 python 脚本。 作者使用基于无人机的智利中南部泥炭地的高光谱图像。该图像有 41 个波段&#xff08;10 nm 宽&#xff09;&#xff0c;范围为 480-880 nm&#xff0c;像素大小为 10 cm。绿点对应于测量生物…

【Python系列】Python 协程:并发编程的新篇章

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

万物分割(Segment Anything Model)C++模型推理部署

概述 SAM 是一种先进的人工智能模型&#xff0c;已经证明了在分割复杂和多样化图像方面具有优异的表现。该模型是计算机视觉和图像分割领域的一个重大突破。 SAM 的架构旨在处理各种图像分割任务&#xff0c;包括对象检测、实例分割和全景分割。这意味着该模型可以应用于各种用…

CTF-web 基础 网络协议

网络协议 OSI七层参考模型&#xff1a;一个标准的参考模型 物理层 网线&#xff0c;网线接口等。 数据链路层 可以处理物理层传入的信息。 网络层 比如IP地址 传输层 控制传输的内容的传输&#xff0c;在传输的过程中将要传输的信息分块传输完成之后再进行合并。 应用…

使用VM安装K8S

VM 部署K8S 前言 本次使用VM搭建k8s&#xff0c;由于搭建流程复杂&#xff0c;在此记录。 需提前安装好VM&#xff08;可参考&#xff1a;VM安装&#xff09;&#xff0c;起两台虚拟机(模拟master和worker)&#xff0c;且VM里已安装好Docker&#xff08;可参考&#xff1a;D…

操作系统——进程同步

文章目录 进同步和互斥1.什么是进程同步和进程互斥&#xff1f;进程同步进程互斥 2.进程互斥的软件实现方式单标志法双标志检查法双标志后检查法Peterson算法 3. 进程互斥硬件实现方法中断屏蔽方法TestAndSet指令Swap指令 4. 互斥锁5. 信号量机制整形信号量记录型信号量用信号量…

Scrapy 爬取旅游景点相关数据(五)

本期内容&#xff1a;&#xff08;1&#xff09;爬取日本其他城市数据存入数据库&#xff08;2&#xff09;爬取景点评论数据 1 爬取其他城市景点数据 只爬取一个城市的数据对于做数据可视化系统可能是不够的&#xff0c;因为数据样本量少嘛&#xff0c;本期来爬取其他城市的景…

等保测评练习卷25

等级保护初级测评师试题25 姓名&#xff1a; 成绩&#xff1a; 一、判断题&#xff08;10110分&#xff09; 1.安全区域边界对象主要根据系统中网络访问控制设备的部署情况来确定&#xff08;&#xff09;不是网络访问控制设备而…

笔试练习day2

目录 BC64 牛牛的快递题目解析解法模拟代码方法1方法2 DP4 最小花费爬楼梯题目解析解法动态规划状态表示状态转移方程代码 数组中两个字符串的最小距离题目解析解法方法1暴力解法(会超时)方法2贪心(动态规划)代码 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接…

Yolov8在RK3588上进行自定义目标检测(一)

1.数据集和训练模型 项目地址&#xff1a;https://github.com/airockchip/ultralytics_yolov8.git 从github(htps:l/github.com/airockchip/ultralytics_yolov8)上获取yolov8模型。 下载项目&#xff1a; git clone https://github.com/airockchip/ultralytics_yolov8.git …

Python | Leetcode Python题解之第316题去除重复字母

题目&#xff1a; 题解&#xff1a; class Solution:def removeDuplicateLetters(self, s: str) -> str:vis defaultdict(int)cnt defaultdict(int)for ch in s: cnt[ch] 1queue []for ch in s:if vis[ch] 0:while queue and queue[-1] > ch and cnt[queue[-1]]:vi…

《Advanced RAG》-03-使用 RAGAs + LlamaIndex 进行 RAG 评估

摘要 文章首先介绍了 RAG 评估的三个主要部分&#xff1a;输入查询、检索上下文和 LLM 生成的响应。 提到了 RAGAs 提出的 RAG 评估指标&#xff0c;包括 Faithfulness、Answer Relevance 和 Context Relevance&#xff0c;以及 RAGAs 网站提供的两个额外指标&#xff1a;Conte…

【面试题】分发糖果

这里写自定义目录标题 题目解题问题描述解题思路详细步骤初始化左到右扫描右到左扫描计算总糖果Python 代码示例 示例示例 1示例 2 复杂度分析 题目 仅供学习 解题 使用一种贪心算法的策略解决糖果分配问题。 问题描述 给定一个整数数组 ratings&#xff0c;表示每个孩子…

联邦学习研究综述【联邦学习】

文章目录 0 前言机器学习两大挑战&#xff1a; 1 什么是联邦学习&#xff1f;联邦学习的一次迭代过程如下&#xff1a;联邦学习技术具有以下几个特点&#xff1a; 2 联邦学习的算法原理目标函数本地目标函数联邦学习的迭代过程 3 联邦学习分类横向联邦学习纵向联邦学习联邦迁移…

功能实现——使用 RestTemplate 进行跨项目接口调用

目录 1.需求说明2.项目环境搭建3.代码实现3.1.使用 RestTemplate 进行调用3.1.1.项目 A3.1.2.项目 B 3.2.测试3.3.使用 JsonObject 来传递和接收 json 数据3.3.1.说明3.3.2.代码实现 3.4.其它说明3.4.1.restTemplate.exchange()3.4.2.restTemplate.postForObject()3.4.3.区别总…

8.4 字符串中等 443 String Compression 467 Unique Substrings in Wraparound String

443 String Compression 注意&#xff1a;这里是按照顺序压缩&#xff0c;不忽略顺序就不能用字母表计数再还原了。 如果char num 1 只需要压入char本身 num > 1 时还需要压入char的个数 按字符压入 class Solution { public:vector<char> Push(vector<char>&a…

Debug-019-git reflog的两种使用场景

前情&#xff1a;最近在开发项目中对版本管理有了新的理解&#xff0c;感觉在这方面有了新的收获。同时学习了一个新的git指令&#xff1a;git reflog 实际了解之后&#xff0c;发现这个指令不是很常用&#xff0c;但是对于特定的场景的话它还是非常比较方便 这里我列举两种我…