面试题整理
文章平均质量分 67
fish_study_csdn
PHP go JAVA python 开发
展开
-
redis 两种持久化方式以及数据备份与恢复方案
前言redis提供了数据持久化的方式,提供数据持久化的意义在于数据的恢复、生产环境下的灾难恢复。本文将会围绕redis的两种持久化方式对于它们的运行机制、注意事项、备份方案以及基于灾难恢复的场景下的数据恢复方案。RDB和AOF两种持久化方式RDB方式RDB持久化会对redis中的数据进行周期性的持久化,生成一份快照文件,存放在配置文件声明的目录下面的dump.rdb文件。在redis...原创 2019-08-13 18:27:10 · 800 阅读 · 2 评论 -
MySQL 数据库的热备份和冷备份的优缺点
冷备份(off, 慢, 时间点上恢复)冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份数据库信息而言,冷备份是最快和最安全的方法。冷备份的优点:1.是非常快速的备份方法(只需拷贝文件)2.容易归档(简单拷贝即可)3.容易恢复到某个时间点上(只需将文件再拷贝回去)4.能与归档方法相结合,作数据库“最新状态”的恢复。5.低度维护,高度安全。冷备份的缺点:1.单独使用时,只能提供到“某一时间点上”的恢复。原创 2020-05-10 08:06:49 · 1150 阅读 · 0 评论 -
redis 面试题
1:Redis 支持哪几种数据类型?String、List、Set、Sorted Set、hash bitmap hyperlogLog2:Redis 与 memcached 相比有哪些优势?memcached 所有的值均是简单的字符串,redis 作为其替代者,支持更为丰富的数据类型 redis 的速度比 memcached 快很多 redis 的速度比 memcached 快很多...原创 2019-08-13 18:26:26 · 123 阅读 · 0 评论 -
mysql8.0 新特性
1.账户与安全#用户创建与授权 之前:创建用户并授权1 grant all privileges on *.* to 'myuser'@'%' identified by '3edc#EDC';2 select user, host form mysql.user; 之后:创建用户和授权必须分开1 create user 'myuser'@'%' identified by '3edc#EDC';2 grant all privileges on *.* to ...原创 2021-07-01 12:15:59 · 682 阅读 · 0 评论 -
网站的PV量的计算和建设(PHP)
你想建设一个能承受500万PV/每天的网站吗?500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢?PV是什么:PV是page view的简写。PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。计算模型:每台服务器每秒处理请求的数量=((80%*总PV量)/(24小时*60分*60秒*40%)) / 服务器数量 。其中关键的参数是80%、40%。表示一天中有80%的请求发生在一天的40%的时间内。24小时的40%是9.6小时,有80%的请求发生一天.原创 2021-07-01 10:05:22 · 485 阅读 · 0 评论 -
go 面试题例子
func main() { i := 1 s := []string{"A", "B", "C"} i, s[i-1] = 2, "Z" fmt.Printf("s: %v \n", s)} A. s: [Z,B,C] B. s: [A,Z,C] 参考答案及解析:A。知识点:多重赋值。多重赋值分为两个步骤,有先后顺序: 计算等号左边的索引表达式和取址表达式,接着计算等号右边的表达式; 赋值; 所以本例,会先计算 s[i-1],等.原创 2021-05-17 16:18:05 · 100 阅读 · 0 评论 -
go 语言切片函数的例子
下面这段代码输出什么?func change(s ...int) { s = append(s,3)}func main() { slice := make([]int,5,5) slice[0] = 1 slice[1] = 2 change(slice...) fmt.Println(slice) change(slice[0:2]...) fmt.Println(slice)}参考答案及解析:[1 2 0 0 0]原创 2021-05-16 10:33:10 · 172 阅读 · 0 评论 -
mysql 知识和面试题整理:
sql知识点:SQL基础知识整理:select查询结果 如:[学号,平均成绩:组函数avg(成绩)]from从哪张表中查找数据 如:[涉及到成绩:成绩表score]where查询条件 如:[b.课程号='0003' and b.成绩>80]group by分组 如:[每个学生的平均:按学号分组](oracle,SQL server中出现在select子句后的非分组函数,必须出现 ...原创 2020-11-14 17:13:43 · 451 阅读 · 0 评论 -
Btree与b+tree
1. Btree: B-tree是一种多路自平衡搜索树,它类似普通的二叉树,但是Btree允许每个节点有更多的子节点。Btree示意图如下: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子的指针为空,则报告找不到相应的关键字; 如果B树的所有非叶子结点的左右子树的结点数目均保持差不多(平衡),那么B树的搜索性能逼近二分查找;但它比连续内存空间的二分查找的原创 2020-11-03 15:02:21 · 3350 阅读 · 0 评论 -
面试题--零散知识点整理
1 什么是php跨平台php开发的程序可以不经修改运行在,windows.linux,unix等多个操作系统上补充:举例说windows系统的软件不可以在linux上运行,linux系统的软件不可以在windows上运行.2 linux的管道命令管道命令 就是用来连接多条指令的,前一条指令的输出流向会作为后一条指令的操作对象。1)基本格式 管道命令的操作符是:”|”,它只能处理由前面一条指令传出的正确输出信息,对错误信息是没有直接处理能力的。然后,传递给下一条指令,作为操作对象。原创 2020-08-19 09:24:31 · 231 阅读 · 0 评论 -
跨域问题 --jsonp
1 跨域问题的原因;由于浏览器同源策略的限制,非同源下的请求,都会产生跨域问题,jsonp即是为了解决这个问题出现的一种简便解决方案。同源策略即:同一协议,同一域名,同一端口号。当其中一个不满足时,我们的请求即会发生跨域问题。举个简单的例子:http://www.abc.com:3000到https://www.abc.com:3000的请求会出现跨域(域名、端口相同但协议不同) http://www.abc.com:3000到http://www.abc.com:3001的请求会出现原创 2020-08-19 09:14:14 · 237 阅读 · 0 评论 -
Nginx 限流模块:限制高并发和IP访问频率 面试常考
Nginx 是我们常用的负载均衡和反向代理服务器,并发性能非常优秀。但是在并发量极大的情况下,必要限流措施还是需要的,Nginx 的有对应的模块插件可通过简单配置来完成这个功能。限制并发,限制ip并发数,也是说限制同一个ip同时连接服务器的数量。1、添加limit_conn_zone这个变量只能在http使用。http{...#定义一个名为one的limit_zone,大小10M内存来存储session,#以$binary_remote_addr 为key#nginx 1.18以后用原创 2020-05-19 08:23:58 · 985 阅读 · 0 评论 -
ThinkPHP5.0之运行原理及使用
目录结构:运行原理:(1)mvc设计模式m 模型v 视图c 控制器原理:c调度M获取数据,加载视图将数据显示给客户端(2)模板引擎技术(TP5内置的模板引擎,并不是smarty)(3)命名空间namespace app\admin\controller;app 应用admin 模块controller 控制器TP5里文件命名空间所在路径和文件目录路径相同...原创 2020-02-25 15:24:20 · 1104 阅读 · 0 评论 -
PHP开发api接口安全验证
php的api接口在实际工作中,使用PHP写api接口是经常做的,PHP写好接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道,请求的来源是什么,有可能是别人非法调用我们的接口,获取数据,因此就要使用安全验证。原理从图中可以看得很清楚,前台想要调用接口,需要使用几个参数生成签名。时间戳:当前时间随机数:...原创 2019-12-21 16:10:25 · 327 阅读 · 0 评论 -
php api开发 token
token 设计和验证:APP自用登陆型token实现步骤:(1)数据库用户表添加token字段和time_out这个token过期时间字段(2)用户登陆时(注册时自动登陆也需要)生成一个token和过期时间存入表中(3)在其他接口调用前,判断token是否正确,正确则继续,错误则让用户重新登陆验证流程:1:服务端接收到app发送的用户名和密码,进行登录验证.(如果登录验证...原创 2019-12-21 16:04:17 · 674 阅读 · 0 评论 -
进程、线程和协程之间的区别和联系
1.什么是进程?进程是操作系统进行资源分配和调度的基本概念,可以说进程是线程的容器,一个进程里包括数据区域和堆栈存储着活动过程调用的指令和本地的变量,进程没运行时候处于没有生命的一个实体的状态,运行时依赖处理器给他活体状,一个进程至少有一个线程,如果没有的话那么这个线程就是它本身。2.什么是线程?线程是程序执行流的最小单元,一个线程的信息包括(线程ID,指令集合,堆栈组)组成的线程这种...原创 2019-12-21 13:54:38 · 255 阅读 · 0 评论 -
实现页面静态化,PHP是如何实现的?
随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。一般情况下会从以下方面来做优化1、动态页面静态化2、优化数据库3、使用负载均衡4、使用缓存5、使用CDN加速纯静态网站在网站中是怎么实现的?纯静态的制作技术是需要先把网站的页面总结出来,分为多...原创 2019-12-18 22:32:17 · 247 阅读 · 0 评论 -
高并发缓存架构,缓存雪崩、缓存穿透之谜
什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?面试官心理分析其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。面试题剖析缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求...原创 2019-12-20 11:38:42 · 347 阅读 · 1 评论 -
MySQL分区
分区和手动分表对比mysql的分区操作还比较简单,好处是也不用自己动手建表进行分区,和水平分表有点像分表 分区 手动分表 分区 多张数据表 一张数据表 重复数据的风险 没有数据重复的风险 写入多张表 写入一张表 没有统一的约束限制 强制的约束限制 1、mysql分区简介?表分区:分区是根据一定的规则,数据库把一个...原创 2019-12-18 20:45:10 · 462 阅读 · 0 评论 -
RPC 详解
一个阳光明媚的早晨,老婆又在翻看我订阅的技术杂志。“老公,什么是RPC呀,为什么你们程序员那么多黑话!”,老婆还是一如既往的好奇。“RPC,就是Remote Procedure Call的简称呀,翻译成中文就是远程过程调用嘛”,我一边看着书,一边漫不经心的回答着。“啥?你在说啥?谁不知道翻译成中文是什么意思?你个废柴,快给我滚去洗碗!”“我去。。。”,我如梦初醒,我对面坐着的可不是一个程...原创 2019-12-05 16:01:55 · 796 阅读 · 0 评论 -
什么是微服务架构?
一文详解微服务架构要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序。从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。本文将以一个网上超市应用为例来说明这一过程。最初的需求几年前,小明和小皮一起创业做网上超市。小明负责程序开发,小皮负责其他事宜。当时互联网还不发达,网上超市还是蓝海。只要功能实现了就能随便赚...原创 2019-12-05 15:52:01 · 265 阅读 · 0 评论 -
互联网常用术语
防止雪崩当一个服务无法承受大请求压力的时候,是否会影响所依赖的其他服务?这时候可以考虑限流等措施。功能降级当某个服务出现故障时,是否有容错手段能够让业务继续跑下去,而不影响整体应用。冥等当用户多次下同一订单时,得到的结果永远同一个。缓存当请求量较大时,为避免对数据库造成较大压力,可以适当将一些变化较小,读取量较大的数据放入缓存。超时超时时间对于调用服务来说...原创 2019-12-05 15:51:05 · 367 阅读 · 0 评论 -
通俗易懂理解数据库范式
关系型数据库范式(NF)的概念:符合某种级别的关系模型的集合,表示一个关系内部各个属性之间联系的合理化程度。很难懂对不对?大体上,范式指的是,一张数据表的级别。一范式(1NF)是基础级别;大家都要有的。概念是:数据库表每一项都是不可再分的项;用一句简单的话说,就是所有的属性都是单一的,你不能一个格里面写俩属性,也没地儿写啊不是。图解:姓名 学号 年龄 基本信息 奔...原创 2019-12-05 15:28:46 · 176 阅读 · 0 评论 -
PHP 判断文件是否为图片的方法
方法一 利用 getimagesize 函数获取图片信息,然后进行判断:function isImage($filename){ $types = '.gif|.jpeg|.png|.bmp'; //定义检查的图片类型 if(file_exists($filename)) { if (($info = @getimagesize($filen...原创 2019-10-20 16:48:50 · 1082 阅读 · 0 评论 -
mysql SQL语句执行过程详解
当希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的。一旦理解了这一点,很多查询优化工作实际上就是遵循一些原则能够按照预想的合理的方式运行。 如上图所示,当向MySQL发送一个请求的时候,MySQL到底做了什么:客户端发送一条查询给服务器。 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。 服务器端进行...原创 2019-10-13 22:32:13 · 342 阅读 · 1 评论 -
Mysql 日志文件类型
Mysql 中提供了多种类型的日志文件,分别反映 Mysql 的不同信息,了解它们很有必要。1、Error log ( 错误日志 )错误日志记录了 Mysql Server 运行过程中所有较为严重的警告和错误信息,以及 Mysql Server 每次启动和关闭的详细信息。在默认情况下,系统记录错误日志的功能是关闭的( 我所使用的 Mysql 5.6 是开启的 ),错误信息被输出到标准错...原创 2019-10-13 22:10:47 · 383 阅读 · 0 评论 -
mysql 数据库中乐观锁、悲观锁、共享锁和排它锁的理解
乐观锁乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了。通常实现是这样的:在表中的数据进行操作时(更新),先给数据表加一个版本(version)字段,每操作一次,将那条记录的版本号加1。也就是先查询出那条记录,获取出versio...原创 2019-10-12 10:36:39 · 254 阅读 · 1 评论 -
图解数字签名
数字签名是什么?1:鲍勃有两把钥匙,一把是公钥,另一把是私钥。2:鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。3:苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果4:鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。...转载 2019-08-19 17:56:53 · 153 阅读 · 0 评论 -
JAVA 面试基础 --- 容器 [ 18-34 ]
二 容器18.java 容器都有哪些?1)Collection:一个独立元素的序列,这些元素都服从一条或者多条规则。List必须按照插入的顺序保存元素,而set不能有重复的元素。Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同)。2)Map:一组成对的“键值对”对象,允许你使用键来查找值。|Collection| ├List| │-├Link...原创 2019-05-21 09:28:04 · 451 阅读 · 0 评论 -
数据库分库分表思路
一. 数据切分的背景关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将...原创 2019-10-11 17:20:04 · 165 阅读 · 1 评论 -
分布式解决方案
多个接入层服务器:多个机房,每个机房部署一个集群,每个集群部署一个LVS,实现负载均衡 智能DNS为不同网络不同地域的用户解析到不同LVS 部分接口引用CDN多服务器分布式部署带来多问题:1:用户登陆态session 如何共享? session 存储到redis session.save.hander=redis session.save.path=tcp:/127.0.0.1:6...原创 2019-10-11 13:11:19 · 178 阅读 · 1 评论 -
Nginx服务之防盗链功能
1:根据referer防盗链一般常用的方法是在server或者location段中加入!valid_referers none blocked www.hihi123.com hihi123.com;详见下面的例子其中none表示空的来路,也就是直接访问,比如直接在浏览器打开一个图片blocked表示被防火墙标记过的来路server_names也就是域名了。0....原创 2019-05-23 11:01:40 · 666 阅读 · 0 评论 -
TCP的三次握手和四次挥手
常用术语:Seq (Sequence number)顺序号码SYN(synchronous)表示建立连接,FIN(finish结束)表示关闭连接,ACK(acknowledgement确认)表示响应,PSH(push)表示有 DATA数据传输,RST(reset)表示连接重置。1、TCP报文格式上图中有几个字段需要重点介绍下:(1)序号:Seq()序号,占3...原创 2019-05-22 16:45:48 · 1007 阅读 · 0 评论 -
JAVA 面试(网络 设计模式 spring)【79-112】
八、网络79.http 响应码 301 和 302 代表的是什么?有什么区别?301 redirect: 301 代表永久性转移(Permanently Moved)302 redirect: 302 代表暂时性转移(Temporarily Moved )80.forward 和 redirect 的区别?81.简述 tcp 和 udp的区别?82.tcp 为什么要三次握手,...原创 2019-05-22 13:50:29 · 113 阅读 · 0 评论 -
java面试 (反射 对象拷贝 JAVA WEB 异常)【57-78】
四、反射57.什么是反射?Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。58.什么是 java 序列化?什么情况下需要序列化?序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了...原创 2019-05-21 20:42:00 · 212 阅读 · 0 评论 -
JAVA面试---多线程【35-56】
35.并行和并发有什么区别?并发是多个事件在同一时间段执行,而并行是多个事件在同一时间点执行。36.线程和进程的区别?进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内部调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。一个程序至少一个进程,一个进程至少一个线程。进程...原创 2019-05-21 10:49:46 · 189 阅读 · 0 评论 -
网络的面试题
1 get和post请求的区别Http报文层面:get将请求放在URL,有长度限制,POSt放在报文中 数据库层面:get符合幂等性和安全性(查询),post不符合 其他层面:get请求可以被缓存,被存储。而post不行2 Cookie和Session的区别cookie数据存放在客户端的浏览器上,Session数据存放在服务器上 Session相等于cookie更安全 若考...原创 2019-05-20 14:37:04 · 137 阅读 · 0 评论 -
TCP IP 协议
网络编程在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少?如何标识一个TCP连接系统用一个4四元组来唯一标识一个TCP连接:{local ip, local port,remote ip,remote port}。client最大tcp连接数client每次发起tcp连接请求时,除非绑...原创 2019-05-20 14:00:13 · 126 阅读 · 0 评论 -
java面试基础
https://blog.csdn.net/qq_43148017/article/details/85121579https://www.cnblogs.com/cocoxu1992/p/10460251.html一 JAVA基础 [ 1 - 17 ]1 JRE 和 JDK 的区别是什么JRE: Java Runtime Environment JDK:Java Devel...原创 2019-05-08 14:17:04 · 177 阅读 · 0 评论 -
Redis 面试题
Redis有哪些数据结构?字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。如果你说还玩过Redis Module,像BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开始发亮了。使用过Redis分布式锁么,它是...原创 2019-04-30 10:10:24 · 119 阅读 · 1 评论