![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 85
小林想被监督学习
好想找实习的编程小萌新,想找人一起学习,监督我,不在迷茫ヾ(;゚;Д;゚;)ノ゙
展开
-
Redis 集群 - 数据分片算法
• 节点之间通过⼼跳包通信.⼼跳包中包含了该节点持有哪些 slots.这个是使⽤位图这样的数据结构 表⽰的.表⽰ 16384 (16k) 个 slots,需要的位图⼤⼩是 2KB. 如果给定的 slots 数更多了,⽐如 65536 个了,此时就需要消耗更多的空间,8 KB 位图表⽰了. 8 KB,对于内存来说不算什么,但是在频繁的⽹络⼼跳包中,还是⼀个不⼩的开销的。原创 2024-06-19 17:02:08 · 739 阅读 · 0 评论 -
性能测试概述
性能测试是一项综合性的工作,致力于暴露性能问题,评估系统性能趋势。性能测试工作实质上是利用工具去模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题分析并解决;找出系统性能变化趋势,为后续的扩展做准备。一般地,它主要是针对系统的性能指标制定性能测试方案,执行测试用例,得出测试结果来验证系统的性能指标是否满足既定值。性能指标里包括系统各个方面的能力,如系统并发处理能力,系统响应时间,批量业务处理能力等等。代码级别的性能测试是指在单元测试阶段就对代码的时间性能和空间性能进行必要的测试和评估。原创 2024-06-11 12:37:08 · 722 阅读 · 0 评论 -
Redis 事务
Redis 的事务和 MySQL 的事务概念上是类似的. 都是把⼀系列操作绑定成⼀组.让这⼀组操作·能够批量执行.原创 2024-05-24 15:39:35 · 882 阅读 · 0 评论 -
Redis 的持久化(真的好细)
Redis 是一个内存数据库,把数据存储在内存中,而内存中的数据是不持久的,要想数据持久就得将数据存储到硬盘中,而 Redis 相比于 Mysql 这样的关系型数据库最大的优势就在于将数据存储在内存中从而效率更高,速度更快所以小孩子才做选择,我全都要。Redis 为了保证效率和持久性,于是将一份数据同时存储到内存和硬盘中,有同学可能会疑惑,将数据同时存储到内存和硬盘效率不就低了吗?实际上将数据存储到硬盘有不同的策略,能够保证效率依然很高。当要查询某个数据时,就从内存中读取。原创 2024-05-24 09:27:37 · 935 阅读 · 0 评论 -
TCP网络连接异常情况的处理
TCP网络连接异常情况的处理原创 2023-08-21 19:47:45 · 2443 阅读 · 0 评论 -
“异步”是什么意思?
异步是一种允许操作并行执行而不互相阻塞的技术,它在许多现代应用程序和系统中发挥着重要作用。原创 2024-03-25 15:56:02 · 813 阅读 · 0 评论 -
Redis 的数据结构和内部编码【雨林优选】【面试重点】
可以看到每种数据结构都有⾄少两种以上的内部编码实现,同时有些内部编码,例如 ziplist,可以作为多种数据结构的内部实现,可以通过命令查询 value 对应的内部编码:按道理通过 set 设置的键值对 value 的类型应该是 String,但内部编码的实现是 int,因为 value 对应的数据是 111, redis 对其底层的编码进行了优化,通过 int 类型来保存数据。原创 2024-03-13 15:37:23 · 928 阅读 · 0 评论 -
Redis 为什么性能如此之高【雨林优选】【面试重点】
Redis 使⽤了单线程架构来实现⾼性能的内存数据库服务,本文章将会分析 Redis 单线程命令处理机制,接着分析 Redis 单线程模型为什么性能如此之⾼。原创 2024-03-13 15:37:02 · 1245 阅读 · 0 评论 -
Redis 的 key 的过期策略是怎么实现的【经典面试题】
在 Redis 中可以通过命令 expire 对指定的 key 值设置过期时间,在时间到了以后该键值对就会自动删除。一个 Redis 中可能会存在很多的 key ,而这些 key 中有很大的一部分都会有过期时间,那么 Redis 怎么知道哪些 key 已经到了过期时间需要删除,哪些 key 还没到过期时间呢?有读者可能会说,遍历不就得了,遍历 Redis 中所有的数据,就知道哪些数据已经到时间需要删除,哪些数据还没到时间。原创 2024-03-11 16:00:55 · 1236 阅读 · 0 评论 -
进⼊ Redis 的世界-初识 Redis【雨林精品】
Redis 是⼀种基于键值对(key-value)的 NoSQL 数据库(非关系型数据库),与很多键值对数据库不同的是,Redis中的 value 值可以是由 string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、 Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成,因此 Redis可以满⾜很多的应⽤场景⽽且因为 Redis 会将所有数据都存放在内存中,所以它的读写性能⾮常惊⼈。不仅如此,Re原创 2024-03-09 13:09:50 · 890 阅读 · 0 评论 -
八大技术架构演进之路【小林优选,呕心沥血】
在进行技术学习过程中,由于大部分读者没有经历过一些中大型系统的实际经验, 导致无法从全局理解一些概念,所以本文以一个 "电子商务" 应用为例,介绍从一百个 到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知在正式引入架构演进之前,为避免读者对架构中的概念完全不了解导致低效沟通, 优先对其中一些比较重要的概念做前置介绍原创 2024-03-05 17:21:32 · 953 阅读 · 0 评论 -
开发中的一些重要概念
应用(Application)/ 系统(System)为了完成一整套服务的一个程序或者一组相互配合的程序群。例子:为 了完成一项任务,而搭建的由一个人或者一群相互配合的人组成的团队。模块(Module)/ 组件(Component)当应用较复杂时,为了分离职责,将其中具有清晰职责的、内聚性强的部分,抽象出来形成个体。例子:军队中为了进行某据点的攻克,将人员分为突击小组、爆破小组、掩护小组、通信小组等。分布式(Distributed)原创 2024-03-05 17:20:26 · 825 阅读 · 0 评论 -
ProtoBuf 是什么?
Protocol Buffers 是 Google 的⼀种语⾔⽆关、平台⽆关、可扩展的序列化结构数据的⽅法,它可⽤于(数据)通信协议、数据存储等。 Protocol Buffers 类⽐于 XML,是⼀种灵活,⾼效,⾃动化机制的结构数据序列化⽅法,但是⽐XML 更⼩、更快、更为简单。你可以定义数据的结构,然后使⽤特殊⽣成的源代码轻松的在各种数据流中使⽤各种语⾔进⾏编写和读取结构数据。你甚⾄可以更新数据结构,⽽不破坏由旧数据结构编译的已部署程序。简单来讲,ProtoBuf(全称为 Pro原创 2024-03-02 14:18:01 · 546 阅读 · 0 评论 -
Bean 的生命周期
⽣命周期指的是⼀个对象从诞⽣到销毁的整个⽣命过程,我们把这个过程就叫做⼀个对象的⽣命周期.(为Bean分配内存空间)( Bean 注⼊和装配,⽐如 @AutoWired )a. 执⾏各种通知,如 BeanNameAware ,BeanFactoryAware ,ApplicationContextAware 的接⼝⽅法.b. 执⾏初始化⽅法▪ xml定义 init-method▪ 使⽤注解的⽅式 @PostConstruct▪ 执⾏初始化后置⽅法( BeanPostProcessor )原创 2024-02-11 12:09:12 · 435 阅读 · 0 评论 -
Bean 的作用域
在 Spring 中⽀持 6 种作⽤域,后 4 种在 Spring MVC 环境才⽣效1.:单例作⽤域2.:原型作⽤域(多例作⽤域)3.request:请求作⽤域4.:会话作⽤域5.:全局作⽤域6.websocket:HTTP WebSocket 作⽤域。原创 2024-02-10 17:25:48 · 783 阅读 · 0 评论 -
通过 JWT(JSON Web Token)实现令牌
令牌本质就是⼀个字符串,它的实现⽅式有很多,我们采⽤⼀个 JWT 令牌来实现.JWT全称:JSON Web Token官⽹:JSON Web Token(JWT)是⼀个开放的⾏业标准(RFC 7519),⽤于客户端和服务器之间传递安全可靠的信息.其本质是⼀个 token(令牌),是⼀种紧凑的 URL 安全⽅法.原创 2024-02-01 15:41:24 · 1506 阅读 · 0 评论 -
令牌技术实现登录的思路
我们开发的项⽬,在企业中很少会只部署在⼀台机器上,因为容易发⽣单点故障.(单点故障:⼀旦这台服务器挂了,整个应⽤都没法访问了).所以通常情况下,⼀个Web应⽤会部署在多个服务器上,通过 Nginx 等进⾏ 负载均衡.此时,来⾃⼀个⽤户的请求就会被分发到不同的服务器上.原创 2024-01-31 12:24:09 · 858 阅读 · 0 评论 -
Spring 声明式事务 @Transactional(详解)【面试重点,小林出品】
1. rollbackFor:异常回滚属性.指定能够触发事务回滚的异常类型.可以指定多个异常类型2. Isolation:事务的隔离级别.默认值为 Isolation.DEFAULT3. propagation:事务的传播机制.默认值为 Propagation.REQUIRED原创 2024-01-23 14:38:18 · 1136 阅读 · 0 评论 -
JDK 动态代理(Spring AOP 的原理)(面试重点)
代理模式也叫委托模式.定义:为其他对象提供⼀种代理以控制对这个对象的访问.它的作⽤就是通过提供⼀个代理类,让我们 在调⽤⽬标⽅法的时候,不再是直接对⽬标⽅法进⾏调⽤,⽽是通过代理类间接调⽤,在某些情况下,⼀个对象不适合或者不能直接引⽤另⼀个对象,⽽代理对象可以在客⼾端和⽬标对象之间起到中介的作⽤.原创 2024-01-20 18:50:03 · 1253 阅读 · 0 评论 -
CGLIB动态代理(AOP原理)(面试重点)
JDK 动态代理有⼀个最致命的问题是其只能代理实现了接⼝的类.有些场景下,我们的业务代码是直接实现的,并没有接⼝定义.为了解决这个问题,我们可以⽤CGLIB 动态代理机制来解决.CGLIB(Code Generation Library)是⼀个基于ASM的字节码⽣成库,它允许我们在运⾏时对字节码进⾏ 修改和动态⽣成. CGLIB 通过继承⽅式实现代理, 很多知名的开源框架都使⽤到了CGLIB.例如 Spring中的 AOP 模块中: 如果⽬标对象实现了接⼝,则原创 2024-01-21 12:05:13 · 584 阅读 · 0 评论 -
JVM的几个面试重点
JVM的几个面试重点原创 2023-10-22 18:58:13 · 449 阅读 · 1 评论