Redis

看看这些被你遗忘的java核心基础面试题,你还记得多少?

跟風遠走 提交于 2020-08-17 16:06:00
前言: 请各位不要一直刷框架、刷源码大型项目了....................... 今年面试频繁失败的原因在哪儿?败就败在那些年被你遗忘的基础题上面了. 针对最常见、最常问的java面试题,我想这些你是必须要掌握的 不说精准,但是可以参考下,看那些是你掌握了,看一眼就知道原理及解决方案.可以查缺补漏看看. Java集合22题(基础) ArrayList 和 Vector 的区别。 说说 ArrayList,Vector, LinkedList 的存储性能和特性。 快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么? hashmap 的数据结构。 HashMap 的工作原理是什么? Hashmap 什么时候进行扩容呢? List、Map、Set 三个接口,存取元素时,各有什么特点? Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是 equals()? 它们有何区别? 两个对象值相同 (x.equals(y) == true),但却可有不同的 hash code,这句话对不对? heap 和 stack 有什么区别。 Java 集合类框架的基本接口有哪些? HashSet 和 TreeSet 有什么区别? HashSet 的底层实现是什么? LinkedHashMap 的实现原理? 为什么集合类没有实现

有这样一个“诅咒”,大多数人一辈子逃脱不掉

☆樱花仙子☆ 提交于 2020-08-17 15:59:20
上周,小灰发布了一篇关于“小镇做题家”的漫画,可能是标题起的不太合适,看的人没有多少,有些小伤心。 这次小灰换了一个标题重新发布了一下,没看过的小伙伴可以看看哦~~ 许多人早就已经告别了高考,但是这个诅咒,却跟随他们一生...... 到底什么是“做题家”呢? 之前,小灰曾经讲过一个概念,叫做 内卷化 。 内卷化的大意是说:在某些特殊的局面当中,尽管每一个局内人都在努力争取自己的利益,但是这些人越是努力,造成的无谓损耗越大,大家的整体利益却没有得到提升。 而每一年的高考,毫无疑问是内卷化现象的重灾区。高等教育的总资源是有限的,即使所有考生都夜以继日地努力刷题,最终能进入211、985高校的考生并不会有所增加,反而搞得每一个人都精疲力尽。 但是,对每一个个体来说,不努力刷题也不行。你不刷题,自有别人玩命刷题,把你远远甩在后面。因此,许多家庭条件普通的考生,都无奈地调侃自己是一名 “小镇做题家” 。 不过小灰觉得,所谓“做题家”,更多的是一种心态的体现,并不一定要和“小镇”挂钩。无论在一线城市,还是十八线小镇,做题家都是广泛存在的。 在这些人的认知当中,一分耕耘就必有一分收获,只有自己把更多的精力投入到复习和刷题上面,就一定能在考场上脱颖而出,改变个人命运。 所幸在高考这条赛道上,做题家的这种想法是没错的。因为标准教育把现实的复杂性和不确定性隔离开来,形成了一个有边界

一文详解微服务架构

谁都会走 提交于 2020-08-17 15:20:09
本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。 为了防止不提供原网址的转载,特在这里加上原文链接: https://www.cnblogs.com/skabyy/p/11396571.html 要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序。从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。本文将以一个网上超市应用为例来说明这一过程。 最初的需求 几年前,小明和小皮一起创业做网上超市。小明负责程序开发,小皮负责其他事宜。当时互联网还不发达,网上超市还是蓝海。只要功能实现了就能随便赚钱。所以他们的需求很简单,只需要一个网站挂在公网,用户能够在这个网站上浏览商品、购买商品;另外还需一个管理后台,可以管理商品、用户、以及订单数据。 我们整理一下功能清单: 网站 用户注册、登录功能 商品展示 下单 管理后台 用户管理 商品管理 订单管理 由于需求简单,小明左手右手一个慢动作,网站就做好了。管理后台出于安全考虑,不和网站做在一起,小明右手左手慢动作重播,管理网站也做好了。总体架构图如下: 小明挥一挥手,找了家云服务部署上去,网站就上线了。上线后好评如潮,深受各类肥宅喜爱

2步轻松搞定SpringBoot2.x分布式session共享,极少配置

别说谁变了你拦得住时间么 提交于 2020-08-17 13:59:33
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 集成redis 1.引入jar包 <!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2.配置属性 在application.properties增加Redis服务的相关信息 #################redis单服务基础配置################# spring.redis.database=0 spring.redis.host=127.0.0.1 spring.redis.password= spring.redis.port=6379 RedisTemplate配置 /** * RedisTemplate配置 */ @Bean public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory lettuceConnectionFactory) { // 设置序列化 Jackson2JsonRedisSerializer<Object>

高并发,你真的理解透彻了吗?

喜夏-厌秋 提交于 2020-08-17 12:49:25
高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。 在过往的面试中,如果候选人做过高并发的项目,我通常会让对方谈谈对于高并发的理解,但是能系统性地回答好此问题的人并不多,大概分成这样几类: 1、** 对数据化的指标没有概念**:不清楚选择什么样的指标来衡量高并发系统?分不清并发量和QPS,甚至不知道自己系统的总用户量、活跃用户量,平峰和高峰时的QPS和TPS等关键数据。 2、设计了一些方案,但是细节掌握不透彻: 讲不出该方案要关注的技术点和可能带来的副作用。比如读性能有瓶颈会引入缓存,但是忽视了缓存命中率、热点key、数据一致性等问题。 3、理解片面,把高并发设计等同于性能优化: 大谈并发编程、多级缓存、异步化、水平扩容,却忽视高可用设计、服务治理和运维保障。 4、掌握大方案,却忽视最基本的东西: 能讲清楚垂直分层、水平分区、缓存等大思路,却没意识去分析数据结构是否合理,算法是否高效,没想过从最根本的IO和计算两个维度去做细节优化。 这篇文章,我想结合自己的高并发项目经验,系统性地总结下高并发需要掌握的知识和实践思路,希望对你有所帮助。内容分成以下3个部分: 如何理解高并发? 高并发系统设计的目标是什么? 高并发的实践方案有哪些

Redis 6.0 多线程重磅发布!!!

自古美人都是妖i 提交于 2020-08-17 12:25:52
Redis 6.0在5.2号这个美好的日子里悄无声息的发布了,这次发布在IT圈犹如一颗惊雷一般,因为这是redis最大的一次改版,首次加入了 多线程 。 作者Antirez在RC1版本发布时在他的博客写下: the most “enterprise” Redis version to date // 最”企业级”的 the largest release of Redis ever as far as I can tell // 最大的 the one where the biggest amount of people participated // 参与人数最多的 这次改变,性能有个飞速的提升~ 先po出新版和旧版性能图 从上面可以看到 GET/SET 命令在 4 线程 IO 时性能相比单线程是几乎是翻倍了。另外,这些数据只是为了简单验证多线程 IO 是否真正带来性能优化,并没有针对严谨的延时控制和不同并发的场景进行压测。数据仅供验证参考而不能作为线上指标,且只是目前的 unstble分支的性能,不排除后续发布的正式版本的性能会更好。 Redis 6.0 之前的版本真的是单线程吗? Redis基于Reactor模式开发了网络事件处理器,这个处理器被称为文件事件处理器。它的组成结构为4部分:多个套接字、IO多路复用程序、文件事件分派器、事件处理器。

前沿探索:腾讯云数据库自治服务最佳实现

落爺英雄遲暮 提交于 2020-08-17 12:02:35
导语 | 虽然数据库上云解决了传统数据库很多问题,但如何让云数据库发挥最优的效能,依然充满极大挑战。为解决这一难题,高速发展的云数据库正在走向“自治”。本文是对腾讯云数据库高级产品经理刘迪在云+社区沙龙online的分享整理,为大家带来腾讯云在数据库自治服务领域的探索和实践,希望与大家一同交流。 点击视频查看完整直播回放 一、数据库自治的演进 上图所示是一张关于数据库自治的宏观视图。 业内普遍定义的石器时代大概是在十几、二十年前,刚刚进入数据库发展的快速轨道,当时的技术方案和对于数据库的认知都处于一个初级的阶段。 经历了后续的工具时代、专家时代,现在数据库自治已经到达了智能时代。在智能时代中,我们享受到了数据库自治在数据库性能优化、管理、服务等红利。 很多人都有疑惑,这条时代发展的时间线到底是怎么演进的?其实这个问题不难理解,大家在日常工作中也能体会到,时代的更替、技术的诞生,往往跟业务的需求有关,也跟现有的技术能力有关。 无论是业务驱动还是技术驱动,最终的结果就是使得数据库自治从石器时代到工具时代、专家时代、智能时代,这样一个井然有序的发展过程。 我们所谓的石器时代、工具时代、专家时代、智能时代其实不仅仅是指代时间的迭代,更多的是指技术的发展和趋势的迭代。所以有些公司现在可能依然处于石器时代,有些公司可能很早就进入了专家或者智能时代。 1. 石器时代

RPC的超时设置,一不小心就是线上事故

送分小仙女□ 提交于 2020-08-17 11:59:13
上面这张监控图,对于服务端的研发同学来说再熟悉不过了。在日常的系统维护中,『服务超时』应该属于监控报警最多的一类问题。 尤其在微服务架构下,一次请求可能要经过一条很长的链路,跨多个服务调用后才能返回结果。当服务超时发生时,研发同学往往要抽丝剥茧般去分析自身系统的性能以及依赖服务的性能,这也是为什么服务超时相对于服务出错和服务调用量异常更难调查的原因。 这篇文章将通过一个真实的线上事故,系统性地介绍下: 在微服务架构下,该如何正确理解并设置RPC接口的超时时间 ,让大家在开发服务端接口时有更全局的视野。内容将分成以下4个部分: 从一次RPC接口超时引发的线上事故说起 超时的实现原理是什么? 设置超时时间到底是为了解决什么问题? 应该如何合理的设置超时时间? 01 从一次线上事故说起 事故发生在电商APP的首页推荐模块,某天中午突然收到用户反馈:APP首页除了banner图和导航区域,下方的推荐模块变成空白页了(推荐模块占到首页2/3的空间,是根据用户兴趣由算法实时推荐的商品list)。 上面的业务场景可以借助下面的调用链来理解 APP端发起一个HTTP请求到业务网关 业务网关RPC调用推荐服务,获取推荐商品list 如果第2步调用失败,则服务降级,改成RPC调用商品排序服务,获取热销商品list进行托底 如果第3步调用失败,则再次降级,直接获取Redis缓存中的热销商品list

阿里的秒杀系统是怎么设计的?

本秂侑毒 提交于 2020-08-17 11:56:07
点赞再看,养成习惯,微信搜一搜【 三太子敖丙 】关注这个互联网苟且偷生的工具人。 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点、资料以及我的系列文章。 背景 我之前写过一个秒杀系统的文章不过有些许瑕疵,所以我准备在之前的基础上进行二次创作,不过让我决心二创秒杀系统的原因是我最近面试了很多读者,动不动就是秒杀系统把我整蒙蔽了,我懵的主要是秒杀系统的细节大家都不知道,甚至不知道电商公司一个秒杀系统的组成部分。 我之前在某电商公司就是做电商活动的,所以这样的场景和很多解决方案我是比较清楚的,那我就从我自身去带着大家看看一个秒杀的设计细节以及中间各种解决方案的利弊,以下就是我设计的秒杀系统,几乎涵盖了市面上所有秒杀的实现细节: 正文 首先设计一个系统之前,我们需要先确认我们的业务场景是怎么样子的,我就 带着大家一起假设一个场景 好吧。 我们现场要卖1000件下面这个 婴儿纸尿裤 ,然后我们根据以往这样秒杀活动的数据经验来看,目测来抢这100件纸尿裤的人足足有10万人。(南极人打钱!) 你一听,完了呀,这我们的服务器哪里顶得住啊!说真的直接打DB肯定挂,但是别急嘛,有 暖男 敖丙在,任何系统我们开始设计之前我们都应该去思考 会出现哪些问题 ?这里我罗列了几个非常经典的问题: 问题 高并发: 是的 高并发

redis集合 复制ZINTERSTORE ZUNIONSTORE

独自空忆成欢 提交于 2020-08-17 11:49:37
交集复制 ZINTERSTORE TOP_ALL_CC_202008 1 TOP_ALL_202008 并集复制 ZUNIONSTORE TOP_ALL_CC_202008 1 TOP_ALL_202008 15、zinterstore:交集, 格式是:zinterstore dest-key key-count key[key ...][WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] 操作如下: 原始数据: 16、zunionstore:并集, 格式是:zunionstore dest-key key-count key[key ...][WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] 操作如下: 原始数据: 来源: oschina 链接: https://my.oschina.net/shunshun/blog/4498435