Redis

面试造火箭笔记,你离offer就差这个!

烈酒焚心 提交于 2020-10-24 17:36:48
前言: 马上到 2020 年 9 月份啦,不知不觉 2020 年的大半年时间已经悄悄溜走啦,秋招已经开始,不管是实习生还是工作多年的同学都可以考虑跳槽涨薪喽。虽然疫情期间是互联网寒冬,但是对于充分准备的同学来说仍然是充满机会的,本篇文章为大家准备了最新的Java面试题助力面试,加油吧骚年们!希望你们能拿到想要的offer。 本篇文章总结了比较经典的一些面试题,因为内容太多答案我就不写了,需要答案的同学话点击 1065653031 暗号CSDN自行领取,还有我收藏总结的面试题,助力大家秋招面试。 目录 前言: 一、基础篇 二、核心篇 三、框架篇 四、微服务篇、 五、工程篇 总结 一、基础篇 基本功 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和接口有什么区别 说说反射的用途及实现 说说自定义注解的场景及实现 HTTP 请求的 GET 与 POST 方式的区别 session 与 cookie 区别 session 分布式处理 JDBC 流程 MVC 设计思想 equals 与 == 的区别 集合 List 和 Set 区别 List 和 Map 区别 Arraylist 与 LinkedList 区别 ArrayList 与Vector 区别 HashMap 和 Hashtable 的区别

基于Flask-APScheduler实现添加动态定时任务

拈花ヽ惹草 提交于 2020-10-24 17:13:30
阅读目录 一、apSheduler 二、Flask-APScheduler 三、动态定时任务 四、uwsgi部署注意事项 一、apSheduler 第一部分内容限于apSheduler3.0以下版本,以上版本可移步至 FastAPI+apSheduler动态定时任务 1. 引子(Introduction) Advanced Python Scheduler (APScheduler) 是一个轻量级但功能强大的进程内任务调度器,允许您调度函数(或任何其他python可调用文件)在您选择的时间执行。 2. 特性(Features) 没有(硬)外部依赖性 api线程安全 支持CPython、Jython、PyPy 可配置的调度机制(触发器): 类似cron调度 单次运行延迟调度(如UNIX“at”命令) 基于时间间隔(以指定的时间间隔运行) 支持多种存储空间 RAM 基于文件的简单数据库 SQLAlchem MongoDB Redis 3. 使用(Usage) 3.1 安装 pip install apscheduler 3.2 启动调度程序 from apscheduler.scheduler import Scheduler sched = Scheduler() sched.start() 3.3 调度job 3.3.1 简单日期调度job 在指定时间执行一次job

二十一、Linux性能优化实战学习笔记- 如何“快准狠”找到系统内存的问题?

我们两清 提交于 2020-10-24 14:33:18
目录 一、内存性能指标 二、进程内存的使用 1、虚拟内存 2、常驻内存 3、共享内存 4、swap内存 5、缺页异常 三、工具 四、迅速分析内存的性能瓶颈 1、思路逻辑图 2、优化思路 一、内存性能指标 已用内存、剩余内存、共享内存、可用内存、缓存和缓冲区的用量。 共享内存 是通过 tmpfs 实现的,所以它的大小也就是 tmpfs 使用的内存大小。tmpfs其实也是一种特殊的缓存 缓存 分两部分: 读取 文件的页缓存 ,用来缓存从磁盘读取的数据,可以加快以后再次访问的速度 Slab 分配器中的可回收内存 缓冲区: 对原始磁盘块的 临时存储 ,用来缓存将要写入磁盘的数据。这样,内核就可以把 分散的写集中起来,统一优化磁盘写入 缓存和缓冲区,就属于可回收内存。它们在内存管理中,通常被叫做 文件页(File-backed Page), 内存映射获取的文件映射页,也是一种常见的文件页。它也可以被释放掉,下次再访问的时候,从文件重新读取 二、进程内存的使用 虚拟内存、常驻内存、共享内存以及 Swap 内存 1、虚拟内存 进程代码段、数据段、共享内存、已经申请的堆内存和已经换出的内存等。这里要注意, 已经申请的内存,即使还没有分配物理内存,也算作虚拟内存。 2、常驻内存 实际使用的物理内存,注意不包括共享内存和swap。 常驻内存一般会换算成占系统总内存的百分比,也就是 进程的内存使用率 3

苍了个天,记一次Linux(被黑客)入侵......

大憨熊 提交于 2020-10-24 13:53:24
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 来源丨网络安全编程与黑客程序员 https://mp.weixin.qq.com/s/LPMoORacJyDYtE74-zrF1w 0x00 背景 周一早上刚到办公室,就听到同事说有一台服务器登陆不上了,我也没放在心上,继续边吃早点,边看币价是不是又跌了。不一会运维的同事也到了,气喘吁吁的说:我们有台服务器被阿里云冻结了,理由:对外恶意发包。我放下酸菜馅的包子,ssh连了一下,被拒绝了,问了下默认的22端口被封了。让运维的同事把端口改了一下,立马连上去,顺便看了一下登录名:root,还有不足8位的小白密码,心里一凉:被黑了! 0x01 查找线索 服务器系统CentOS 6.X,部署了nginx,tomcat,redis等应用,上来先把数据库全备份到本地,然后top命令看了一下,有2个99%的同名进程还在运行,叫gpg-agentd。 来源:Hefe 看雪学院 google了一下gpg,结果是: GPG提供的gpg-agent提供了对SSH协议的支持,这个功能可以大大简化密钥的管理工作。 看起来像是一个很正经的程序嘛,但仔细再看看服务器上的进程后面还跟着一个字母d,伪装的很好,让人想起来windows上各种看起来像svchost

为了面试大厂,精选2020年大厂高频Java面试真题集锦(含答案)

谁说胖子不能爱 提交于 2020-10-24 13:30:56
本文涵盖了阿里巴巴、腾讯、字节跳动、京东、华为等大厂的Java面试真题,不管你是要面试大厂还是普通的互联网公司,这些面试题对你肯定是有帮助的,毕竟大厂一定是行业的发展方向标杆,很多公司的面试官同样会研究大厂的面试题。 与此同时,今年算法面试一定是会被问的,而算法不是光靠背面试题就有用的,它是需要数学逻辑思维的,因此,小编会在文末为大家准备一份非常优质的算法学习手册,重点在于学习思维方法,话不多说,直接开始上精选的大厂面试真题! 由于文章篇幅限制,不可能将所有面试题以文字形式把大厂面试题展示出来,本篇为大家精选了一些面试题,如果你需要这份完整版的面试笔记,获取面试资料只需: 点击这里领取获取!!! 暗号:CSDN Java基础 1.JAVA 中的几种数据类型是什么,各自占用多少字节。 2.String 类能被继承吗,为什么。 两个对象的 hashCode() 相同,则 equals() 也一定为 true,对吗? String 属于基础的数据类型吗? 5.Java 中操作字符串都有哪些类?它们之间有什么区别? 6.Java 中 IO 流分为几种? 7.BIO、NIO、AIO 有什么区别? 8.用过哪些 Map 类,都有什么区别,HashMap 时线程安全的吗,并发下使用的 Map 是什么,他们的内部原理分别是什么,比如存储方法,hashcode,扩容,默认容量等。 如何将字符串反转?

解读秒杀业务:Redis如何助力高并发秒杀系统以及完美解决超卖问题

落爺英雄遲暮 提交于 2020-10-24 13:09:27
秒杀业务 在电商领域,存在着典型的秒杀业务场景,那何谓秒杀场景呢。简单的来说就是一件商品的购买人数远远大于这件商品的库存,而且这件商品在很短的时间内就会被抢购一空。比如每年的618、双11大促,小米新品促销等业务场景,就是典型的秒杀业务场景。 秒杀业务最大的特点就是瞬时并发流量高,在电商系统中,库存数量往往会远远小于并发流量,比如:天猫的秒杀活动,可能库存只有几百、几千件,而瞬间涌入的抢购并发流量可能会达到几十到几百万。 所以,我们可以将秒杀系统的业务特点总结如下。 需要更多Java知识点和面试题的朋友可以点一点下方链接免费领取 链接: 1103806531 暗号:CSDN (1)限时、限量、限价 在规定的时间内进行;秒杀活动中商品的数量有限;商品的价格会远远低于原来的价格,也就是说,在秒杀活动中,商品会以远远低于原来的价格出售。 例如,秒杀活动的时间仅限于某天上午10点到10点半,商品数量只有10万件,售完为止,而且商品的价格非常低,例如:1元购等业务场景。 限时、限量和限价可以单独存在,也可以组合存在。 (2)活动预热 需要提前配置活动;活动还未开始时,用户可以查看活动的相关信息;秒杀活动开始前,对活动进行大力宣传。 (3)持续时间短 购买的人数数量庞大;商品会迅速售完。 在系统流量呈现上,就会出现一个突刺现象,此时的并发访问量是非常高的,大部分秒杀场景下

面试收获美团offer的学习笔记:MySQL+Spring+JVM+多线程并发等

痞子三分冷 提交于 2020-10-24 12:22:14
从去年到今年先后面试了 6 次美团,外卖、订单、商旅面试了好几个部门、总结下来面试的大体思路真的基本一致诶。比如: JVM 参数配置、常用调试工具、分区、类加载,还会问你有需要线上的调试问题吗?遇到死循环 CPU 飙升怎么解决? Java 并发包常用工具用法和原理、会配合集合类一起考,对了还会有 volatile、CAS 原理等。 MySQL 也算是必备了,索引存储结构、索引搜索原理、事务的隔离级别和原理,这些真的是逢考必问。当然除了 MySQL,Redis 和 ES 也是面试长文的,大多都是集中到原理。比如 ES 倒排索引、分片原理,Redis 的 zset 原理和使用场景、多路复用、穿透、熔断等等。 框架也是必备的知识点,最常见的就是 AOP 原理,自己怎么实现?Spring Boot 啥原理?框架通常会配合设计模式一起考,比如你最熟悉的设计模式是啥?Spring MVC 里面用了什么设计模式?解决了什么问题? 接下来最重要的就是服务治理了,这里面内容就太多了,Dubbo 也好,Spring Cloud 也罢,总之这个地方最能看得出你真实的工作经验和问题的考虑深度,毕竟没有真正在庞大的系统里面锻炼过真的很难应付这个地方。 没漏掉还有一个最重要的算法,这个就靠平时多练了,LeetCode 中文版上线了,一天一道题,面试必无敌。 说了这么多只有一个重点,就是无论大厂他有没有题库

PHP解耦的三重境界(浅谈服务容器)

混江龙づ霸主 提交于 2020-10-24 11:05:17
在完成整个软件项目开发的过程中,有时需要多人合作,有时也可以自己独立完成,不管是哪一种,随着代码量上升,写着写着就“失控”了,渐渐“丑陋接口,肮脏实现”,项目维护成本和难度上升,到了难以维持的程度,只有重构或者重新开发。 第一重境界 假设场景:我们需要写一个处理类,能够同时操作会话,数据库和文件系统。我们或许会这么写。 境界特征:可以运行,但是严重耦合 class DB{ public function DB($arg1,$arg2){ echo 'constructed!'.PHP_EOL; } } class FileSystem{ public function FileSystem($arg1,$arg2){ echo 'constructed!'.PHP_EOL; } } class Session{ public function Session($arg1,$arg2){ echo 'constructed!'.PHP_EOL; } } class Writer{ public function Write(){ $db=new DB(1,2); $filesystem=new FileSystem(3,4); $session=new Session(5,6); } } $writer=new Writer(); $writer->write(); 写法缺点: 1

第12课:分布式锁

早过忘川 提交于 2020-10-24 08:49:23
本达人课讲述的是基于 Spring Cloud 的分布式架构,那么也带来了线程安全问题,比如一个商城系统,下单过程可能由不同的微服务协作完成,在高并发的情况下如果不加锁就会有问题,而传统的加锁方式只针对单一架构,对于分布式架构是不适合的,这时就需要用到分布式锁。 实现分布式锁的方式有很多,本文结合我的实际项目和目前的技术趋势,通过实例实现几种较为流行的分布式锁方案,最后会对不同的方案进行比较。 基于 Redis 的分布式锁 利用 SETNX 和 SETEX 基本命令主要有: SETNX(SET If Not Exists):当且仅当 Key 不存在时,则可以设置,否则不做任何动作。 SETEX:可以设置超时时间 其原理为:通过 SETNX 设置 Key-Value 来获得锁,随即进入死循环,每次循环判断,如果存在 Key 则继续循环,如果不存在 Key,则跳出循环,当前任务执行完成后,删除 Key 以释放锁。 这种方式可能会导致死锁,为了避免这种情况,需要设置超时时间。 下面,请看具体的实现步骤。 1.创建一个 Maven 工程并在 pom.xml 加入以下依赖: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>