面试问题总结

作为一个一年半Java开发的技术小白面试的心得。
在原先公司工作接触nginx、redis等工具。由于工作上对这些工具只做到会用的程度没了解深入。在面试中出现很多笑话(一问三不知的情况都出来)。今天做个反省,总结。

一、Nginx问题
问nginx负载均衡原理?
答:负载均衡作为nginx重要的一个功能,主要需要通过反向代理,接收请求通过不同配置方式,分发到不同的服务器做处理。主要有三种策略:轮询、权重、ip_hash

问nginx反向代理主要配置?
答:主要是nginx.conf文件里面的server对象里面的localtion配置要监听的路径、proxy_pass配置跳转的路径。

二、Redis问题
问Redis穿透?
答:

 Redis穿透指一些恶意请求故意查询不存在的key,请求量大对后台系统造成很大压力。解决方法:
1、对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该key对应的数据insert了之后清理缓存。
2、对一定不存在的key进行过滤。可以把所有的可能存在的key放到一个大的Bitmap中,查询时通过该bitmap过滤。

问Redis雪崩?
答:

Redis雪崩指服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,会给后端系统带来很大压力。导致系统崩溃。解决方法:
1、在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个key只允许一个线程查询数据和写缓存,其他线程等待。
2、做二级缓存,A1为原始缓存,A2为拷贝缓存,A1失效时,可以访问A2,A1缓存失效时间设置为短期,A2设置为长期
3、不同的key,设置不同的过期时间,让缓存失效的时间点尽量均匀

三、比较问题
问Mysql与postgreSql区别?
答:

MySQL更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景。PG更加适合严格的企业应用场景。

参考https://www.cnblogs.com/sbj-dawn/p/8053549.html

问JPA与myBatis区别?
答:

 MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
 MyBatis容易掌握,而Hibernate门槛较高。
 Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
 Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
 Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
Image placeholder
Cube
未设置
  28人点赞

没有讨论,发表一下自己的看法吧

推荐文章
【搞定 Java 并发面试】面试最常问的 Java 并发基础常见面试题总结!

Java并发基础常见面试题总结 1.什么是线程和进程? 1.1.何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。

面试题总结:可能是全网最好的MySQL重要知识点

作者:Snailclimb 整理编辑:SegmentFault本文原载于SegmentFault专栏JavaGuide,如侵删。标题有点标题党的意思,但希望你在看了文章之后不会有这个想法——这篇文章是

PHP安全问题总结之有哪些?

推荐课程:PHP开发工程师--学习猿地精品课程 PHP安全问题总结之有哪些?[图]1、XSSCross-SiteScripting(跨站脚本)简称XSS,是一种代码注入。者通过在目标网站上注入恶意脚本

你真的了解 React 吗?这里有 50 个 React 面试问题

如果你是一位有理想的前端开发人员,并且正在准备面试,那么这篇文章就是为你准备的。本文收集了React面试中最常见的50大问题,这是一份理想的指南,让你为React相关的面试做好充分的准备工作。首先我

2020年前必须掌握的数据库面试问题~

一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARYKEY),那么InnoDB会选择主键作为聚集索引。如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索

面试问烂的 Spring AOP 原理、SpringMVC 过程

  正文  SpringAOP,SpringMVC,这两个应该是国内面试必问题,网上有很多答案,其实背背就可以。但今天笔者带大家一起深入浅出源码,看看他的原理。以期让印象更加深刻,面试的时候游刃有余。

2020年PHP面试总结

1.redis输出redis的数据结构?说出redis底层数据结构的实现说出redis的常用场景redis实现分布式锁。2.mysqlMySQL的最左匹配原则MySQL的索引MySQL的常用存储引擎M

2020年中大厂前端面试题(总结)

课程推荐:web全栈开发就业班--拿到offer再缴学费--融职教育 本次面试面试了很多家公司,包括360,美团,猿辅导,小米,腾讯地图,头条,新东方,快手,知乎等几家公司,刚开始去面试的时候那段时间

Spring Boot 面试,一个问题就干趴下了!

随着SpringBoot使用越来越广泛,SpringBoot已经成为Java程序员面试的知识点,很多同学对SpringBoot理解不是那么深刻,经常就会被几个连环跑给干趴下了!比如下面这一段的Spri

关于面试题:[1, 2, 3].map(parseInt)问题的剖析

一、前言最近有小伙伴在公号中咨询了胡哥这道面试题,窃以为是比较有意思的一道面试题,于此分享给各位小伙伴。先把答案给了各位,和你理解的一样吗?![1,2,3].map(parseInt)//[1,NaN

JavaScript 面试中常见算法问题详解

课程推荐:Java开发工程师--学习猿地--送7个上线商业项目 JavaScriptSpecification阐述下JavaScript中的变量提升所谓提升,顾名思义即是JavaScript会将所有的

【分享】2020年大前端面试题库 - 备战明年金三银四

https://segmentfault.com/a/119000002122195...2020年大前端面试题库-备战明年金三银四前端面试 阅读约10分钟写在前面现在面试文章已很多,更不觉得新鲜,本

我是怎么倒在美团第三轮面试之下的

说实话,之前我从来没想过能有大厂会给我机会让我去面试,一个专科生,不是科班出身,这些硬性条件好像都没有一个符合的,但是却获得了美团的面试机会。很庆幸自己获得那次机会,也让我深刻体会到了面试大厂,到底需

都9012年了,怎么还会有人不会面试?

我是一家互联网公司的一线HR,负责公司技术人员的招聘。今天我有两个候选人又被fail了。关于这个岗位,我也很无奈。按理说,全是基础岗位的招聘,薪资也给的不算低,应该很容易招才对。但好巧不巧,我们公司是

漫画 | 互联网公司面试黑话图鉴:个个奥斯卡!

作者:阿波漫画:最新热歌慢摇面试如一座冰山水面之上的10%是台词水面之下的90%是潜台词看不懂面试的潜台词离沉船就不远了在信任与演技错综复杂的职场中读懂面试潜台词是你成就职场霸业的第一步这份面试黑话图

漫画 | 面试的我 VS 真实的我

作者:纯洁的微笑、孤独烟漫画师:栗子“面试造火箭,入职拧螺丝!”已经是各大互联网公司招聘的常态,为了应对如今越演越烈的面试形势,程序员一个个都变成了表演大师。俗话说面试如戏,全靠演技!HR篇01020

为了面试后不再回去等消息,我决定阅读源码

01、读源码的经历刚参加工作那会,没想过去读源码,更没想过去改框架的源码;总想着别人的框架应该是完美的、万能的,应该不需要改。另外即使我改了源码,怎么样让我的改动生效了?项目中引用的不还是没改的jar

AB test | 数据分析师面试必知 !

前言关于ABtest的重要性无需多言,数据、产品等从业人员几乎必知,好的数据科学家我想一定是知道理解业务比模型更为重要,而ABtest就是伴随着业务增长的利器。如果你心中的ABtest几乎都没有用到中

干货满满 | 来自灵魂的拷问-这21道Redis面试题

1、使用redis有哪些好处?速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)支持丰富数据类型,支持string,list,set,sort

Python面试|一文让你读懂if __name__==’__main__’的含义

程序入口对于很多编程语言来说,程序都必须要有一个入口,比如C,C++,以及完全面向对象的编程语言Java,C#等。如果你接触过这些语言,对于程序入口这个概念应该很好理解,C和C++都需要有一个main

面试高频:如何访问 Redis 中的海量数据?

目录前言事故产生分析原因解决方案总结前言有时候我们需要知道线上的redis的使用情况,尤其需要知道一些前缀的key值,那我们怎么去查看呢事故产生因为我们的用户token缓存是采用了【user_toke

面试官问:请介绍一下MySQL数据库的锁机制?

为什么要加锁问题背景当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。要解决的问题多用户环境下保证数

两万字的数据库面试题,不看绝对后悔

一、基本概念1.主键、外键、超键、候选键超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。候选键:是最小超

吊打面试官!MySQL灵魂100问,你能答出多少?

推荐阅读:面试机会不等人,资料看精不看多!史上最全Java技术资料合集!2019年中总结,400道一线大厂高频精选面试题合集(JVM+Spring+RabbitMQ+Mybatis+Redis+分布式

面试题:请解释一下什么是虚拟内存?

内存对于用户来说就是一个字节数组,我们可以根据地址来访问到某个字节或者某些字节:很久之前的内存很久很久之前,一台机器上只放置一个程序,操作系统仅仅作为一个函数库存在。对于内存来说,除去操作系统的代码和