字节一面面经

news2024/9/22 17:27:57

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.coloradmin.cn/o/1976937.html

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

相关文章

IDEA的疑难杂症

注意idea版本是否与maven版本兼容 2019idea与maven3.6以上不兼容 IDEA无法启动 打开idea下载安装的目录&#xff1a;如&#xff1a;Idea\IntelliJ IDEA 2024.1\bin 在bin下面找到 打开在最后一行添加暂停 pause 之后双击运行idea.bat 提示找不到一个jar包&#xff0c;…

MyBatis 框架的两大缺点及解决方案

MyBatis 框架的两大缺点及解决方案 1. SQL 编写负担重1.1 缺点概述1.2 解决方案 2. 数据库移植性差2.1 缺点概述2.2 解决方案 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; MyBatis 作为一款广受欢迎的 Java 持久层框架&#xff0c;尽管其…

ssh 显示图形化界面 Error: Can‘t open display

在客户端&#xff08;你自己的电脑&#xff0c;不是服务器&#xff09;安装 VcXsrv 直接从 github 上下载 https://github.com/marchaesen/vcxsrv/releases&#xff0c;或者使用 winget 命令 winget install -i vcxsrv在服务器上 ~/.zshrc 中&#xff08;或 ~/.bashrc&#xf…

【ubuntu系统】在虚拟机内安装Ubuntu

Ubuntu系统装机 描述新装机后的常规配置&#xff0c; 虚拟机使用vbox terminal 打不开 CTRL ALT F3 进入命令行模式&#xff08;需要返回桌面时CTRL ALT F1&#xff09;root用户登入cd /etc/default vi locale LANG“en_US” 改成 LANG“en_US.UTF-8”保存修改后&…

YOLOV8替换Lion优化器

YOLOV8替换Lion优化器 1 优化器介绍博客 参考bilibili讲解视频 论文地址&#xff1a;https://arxiv.org/abs/2302.06675 代码地址&#xff1a;https://github.com/google/automl/blob/master/lion/lion_pytorch.py """PyTorch implementation of the Lion …

linux 上源码编译安装 PolarDB-X

PolarDB-X 简介 PolarDB-X 是一款面向超高并发、海量存储、复杂查询场景设计的云原生分布式数据库系统。其采用 Shared-nothing 与存储计算分离架构&#xff0c;支持水平扩展、分布式事务、混合负载等能力&#xff0c;具备企业级、云原生、高可用、高度兼容 MySQL 系统及生态等…

CTF-web基础 HTTP协议

基础 HTTPHypertext Transfer Protocol 超文本链接协议&#xff0c;他是无状态的&#xff08;每一次请求都是独立的&#xff09;&#xff0c;发出request发给服务器然后返回responce&#xff0c;现在的版本是1.1版本&#xff0c;默认端口80&#xff08;https是443&#xff09;…

ubuntu上安装HBase伪分布式-2024年08月04日

ubuntu上安装HBase伪分布式-2024年08月04日 1.HBase介绍2.HBase与Hadoop的关系3.安装前言4.下载及安装5.单机配置6.伪分布式配置 1.HBase介绍 HBase是一个开源的非关系型数据库&#xff0c;它基于Google的Bigtable设计&#xff0c;用于支持对大型数据集的实时读写访问。HBase有…

rust读取csv文件,匹配搜索字符

1.代码 use std::fs::File; use std::io::{BufRead, BufReader}; use regex::{Regex};fn main() {let f File::open("F:\\0-X-RUST\\1-systematic\\ch2-fileRead\\data\\test.csv").unwrap();let mut reader BufReader::new(f);let re Regex::new("45asd&qu…

Stable Diffusion绘画 | 文生图-采样器使用说明

webui 1.9.3版本中&#xff0c;采样器分为“采样方法”、“调度类型”两个选项。 因为采样器选项多&#xff0c;所以需要做一个筛选&#xff0c;保留图像生成效果好的采样器。 老派采样器 可以选择砍掉的采样器&#xff1a; DDIMPLMS 最为推荐保留的采样器&#xff1a; Eul…

Python 实现股票指标计算——LON

LON - 铁龙长线 1 公式 LC : REF(CLOSE,1); VID : SUM(VOL,2)/(((HHV(HIGH,2)-LLV(LOW,2)))*100); RC : (CLOSE-LC)*VID; LONG : SUM(RC,0); DIFF : SMA(LONG,10,1); DEA : SMA(LONG,20,1); LON : DIFF-DEA; LONMA : MA(LON,10); LONT : LON, COLORSTICK; 2 数据准备…

03 库的操作

目录 创建查看修改删除备份和恢复查看连接情况 1. 创建 语法 CRATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] …] create_specification:  CHARACTER SET charset_name  CPLLATE collation_name 说明&#xff1a; 大写的标识关键…

C语言函数传参

文章目录 &#x1f34a;自我介绍&#x1f34a;函数传参之值传递&#x1f34a;函数传参之地址传递&#x1f34a;函数传参之数组 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注评论收藏&#xff08;一键四连&#xff09;哦~ &#x1f34a;自我介绍…

SQL中的窗口函数

1.窗口函数简介 窗口函数是SQL中的一项高级特性&#xff0c;用于在不改变查询结果集行数的情况下&#xff0c;对每一行执行聚合计算或者其他复杂的计算&#xff0c;也就是说窗口函数可以跨行计算&#xff0c;可以扫描所有的行&#xff0c;并把结果填到每一行中。这些函数通常与…

注入类漏洞挖掘指南

1. 注入攻击类 1.1 SQL注入 漏洞描述&#xff1a; 所谓SQL注入&#xff0c;就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串&#xff0c;最终达到欺骗服务器执行恶意的SQL命令。具体来说&#xff0c;它是利用现有应用程序&#xff0c;将&#xff08;恶意…

elasticsearch的学习(一):使用postman实现增删改查

简介&#xff1a; elasticsearch的基本的概念和通过postman来实现增删改查 elasticsearch 一个分布式的&#xff0c;restful风格的搜索和数据分析引擎&#xff0c;可以近乎实时的存储&#xff0c;检索数据&#xff0c;具有高扩展性&#xff0c;可以扩展到上百台服务器&#…

使用.NET NativeAOT模式开发hyper-v平台uefi上windbg调试引擎心得

引用 这篇文章的目的是介绍一款实验性的Uefi项目基于.NET NativeAOT模式实现的运行在Windows Hyper-V虚拟机上的windbg调试引擎开发心得 文章目录 引用简介NativeAOT模式动态接口的多态继承绑定实现方式分析NativeAOT模式运行时栈回溯实现方式分析模拟vcruntime实现的c异常捕获…

江科大/江协科技 STM32学习笔记P17

文章目录 一、TIM输入捕获输入捕获与输出比较的关系频率测量测频法测周法 输入捕获的电路异或门的执行逻辑 输入捕获通道主从触发模式输入捕获基本结构PWMI基本结构输入捕获模式测频率main.c 输入捕获模式测占空比main.c 一、TIM输入捕获 输入捕获与输出比较的关系 在输出比较中…

C语言第13篇

1.下面程序是计算n个数的平均值,请填空.______ #include<stdio.h> void main( ) { int i,n; float x,avg0.0; scanf("%d",&n); for(i0;i<n;i) { scanf("%f",&x); avgavg______; } avg________; printf("avg%f\n",avg); } A) …

[Git][分支管理][上]详细讲解

目录 1.理解分支2.创建分支3.切换分支4.合并分支5.删除分支 1.理解分支 感性理解&#xff1a;分支可以理解为平行宇宙&#xff0c;但是在用户需要的时候&#xff0c;可以将两个平行宇宙合并&#xff0c;此时两个平行宇宙的效果将会"叠加"理性理解&#xff1a;每次提…