最近在读黄健宏的《Redis设计与实现》,看完了第一部分,它是采用的自底向上的介绍方法。从最底层的数据结构开始,逐个介绍所用到的数据结构,最后形成数据库。我准备做个redis的学习笔记,这里我就自顶向下整理一下。服务器中的数据库redis服务器将所有数据库保存在服务器状态redis.h/redisServer结构的db数组中,db数组中的每项都是一个redis.h/redisDb的结构体,每个re
转载
2023-09-08 22:20:07
25阅读
redis底层原理基础面试题前言:由于正在准备之后的实习面试,故总结了一部分redis底层原理的问题,回答全为自己组织的语言,若有错各位大佬可及时指出,大家共同进步,谢谢。1.Redis的各个数据结构及使用场景redis中自主实现的数据结构主要有字符串、链表、字典、跳表、整数集合、压缩列表。 字符串作为最基本的数据结构类型,对于简单字符数组在安全性、效率及功能方面有所提升。底层结构中包含free\
转载
2023-07-11 13:24:08
75阅读
1、为什么要用redis做缓存? 高性能: 假如用户第一次访问数据库中的某些数据,是从硬盘上读取的,速度比较慢。将这些数据存在缓存中,下次直接从缓存中取,速度很快,操作缓存就是直接操作内存。 高并发: 直接操作缓存能够承受的请求远远大于直接访问数据库。考虑将数据库中的部分数据转移到缓存中,这样用户的一部分请求会直接到缓存而不用经过数据库。2、Redis的两种持久化方式? 1)为什么要配持久化? 因
转载
2023-12-27 15:30:55
157阅读
一、简介Spring框架核心主要有两个:IOC和AOP。(一)、IOC容器IOC:控制反转,我们想实现一个功能,类A有可能调用到很多其他的接口,比如类B、类C中的方法,为了能调用别的类的方法,首先得取得这个类的实例,即在类A中new一个类B、再new一个类C,也就是说调用者负责创建被调用者的实例。这样的话,会造成类A中越来越臃肿,越来越不好管理;类B、类C需要不断的创建。引入Spring的IOC容
转载
2024-04-10 17:30:51
6阅读
① Spring IOC / DISpring IOC / DI概念将对象创建和属性赋值的权利,转移到spring工厂中完成,解耦和,提高了开发效率,极大提高了代码可维护性。Spring IOC / DI底层实现原理问题说明:Spring是如何通过配置文件,就完成了对象的创建和属性的赋值?答案:使用工厂设计模式 + 配置文件 + 反射描述: 使用工厂设计模式,在工厂中,根据配置文件中标签的clas
转载
2024-02-16 21:35:32
11阅读
八、Java底层基础题1.SpringMVC的原理以及返回数据如何渲染到jsp/html上?答:Spring MVC的核心就是 DispatcherServlet , 一个请求经过 DispatcherServlet ,转发给HandlerMapping ,然后经反射,对应 Controller及其里面方法的@RequestMapping地址,最后经ModelAndView和V
转载
2023-08-09 12:21:09
90阅读
一、IOC(概念和原理)### 1.什么是IOC(1)控制反转,把对象创建对象之间的调用过程,交给Spring进行管理(2) 使用IOC目的:为了耦合度降低(3)做入门案例就是IOC实现概念: Spring是一个轻量级的开源框架,是为解决企业级应用开发的复杂性而创建的,通过核心的Bean factory实现了底层的类的实例化和生命周期的管理。 Spring的最根本使命是:简化java开发。 Sp
转载
2024-10-19 17:02:28
43阅读
一、前言 字典,又称为符号表(sy mbol table)、关联数组(associative array )或映射(map),是一种用于保存键值对(key -value pair)的抽象数据结构。在字典中,一个键(key )可以和一个值(value)进行关联(或者说将键映射为值),这些关联的键和值就称为键值对。 &nb
转载
2024-01-12 05:14:51
98阅读
每条题目都是自己做的,请点赞三连 文章目录Runloop线程、队列、锁GCDKVC、KVOISA、类结构消息转发引用计数、weak、autoreleasepool内存检测、OOM分类、扩展、关联对象NSMutableArray扩展Timer、锁TCP/IP协议族二叉树、排序性能优化算法 Runloop1、RunLoop 的本质是什么?答:本质是一个OC对象,内部也有isa指针。2、Runloop和
转载
2023-08-03 23:21:40
324阅读
基本概念MySQL 事务主要用于处理操作量大,复杂度高的数据。银行转账是经典的解释事务的例子。用户A给用户B转账5000元主要步骤可以概括为如下两步。 第一,账户A账户减去5000元; 第二,账户B账户增加5000元; 这两步要么成功,要么全不成功,否则都会导致数据不一致。这就可以用到事务来保证,如果是不同银行之间的转账还需要用到分布式事务。事务的特性(ACID)(1)在 MySQL
转载
2024-01-15 00:10:04
52阅读
一、Redis 集群如何选择数据库?Redis 集群目前无法做数据库选择,默认在 0 数据库。二、Redis 中的管道有什么用?一次请求/响应服务器能实现处理新的请求即使旧的请求还未被响应,这样就可以将多个命令发送到服务器,而不用等待回复,最后在一个步骤中读取该答复。这就是管道(pipelining),是一种几十年来广泛使用的技术。例如许多 POP3 协议已经实现支持这个功能,大大加快了从服务器下
转载
2023-08-07 23:23:19
47阅读
1 基本概念1.1 常见考点1、Redis 为何这么快?1)基于内存;2)单线程减少上下文切换,同时保证原子性;3)IO多路复用;4)高级数据结构(如 SDS、Hash以及跳表等)。2、为何使用单线程?官方答案因为 Redis 是基于内存的操作,CPU 不会成为 Redis 的瓶颈,而最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且 CPU 不会成为瓶颈,那就顺理成章地采用单线程的方
转载
2023-09-19 19:23:25
118阅读
本文为synchronized系列第二篇。主要内容为分析偏向锁的实现。偏向锁的诞生背景和基本原理在上文中已经讲过了,强烈建议在有看过上篇文章的基础下阅读本文。 本文将分为几块内容:1.偏向锁的入口2.偏向锁的获取流程3.偏向锁的撤销流程4.偏向锁的释放流程5.偏向锁的批量重偏向和批量撤销本文分析的JVM版本是JVM8,具体版本号以及代码可以在这里看到。 偏向锁入口目前网上的很多文章,关于偏向锁源码
原创
2019-08-06 17:21:28
2200阅读
点赞
1linux通过se
原创
2022-07-28 16:39:59
64阅读
NodeJS 中的 this 为什么是一个空对象: 因为所有的 NodeJS 文件在执行的时候都会被包裹到一个函数中,this 都被修改为了空的 module.exports (function (exports, require, module, __filename, __dirname) {
原创
2021-08-21 10:07:00
127阅读
常见面试题:HashMap的底层原理? 在 JDK7 和 JDK8 中,HashMap 的底层是有所不同的 在 JDK7 中,HashMap 是通过数组+链表实现的 在 JDK8 中,HashMap 是通过数组+链表+红黑树实现的 我们通过源码来探讨 JDK8 中 HashMap 的底层,主要是分析 ...
转载
2021-08-29 14:30:00
114阅读
2评论
redis哨兵原理
哨兵是redis集群架构中非常重要的一个组件主要功能如下:集群监控,负责监控redis master和slave进程是否正常工作消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员故障转移,如果master node挂掉了,会自动转移到slave node上配置中心,如果故障转移发生了,通知client客户端新的master地址哨兵本身也
转载
2023-06-29 11:07:55
72阅读
1.先介绍下Vue的 ‘响应式系统’Vue为MVVM框架,当数据模型data变化时,页面视图会得到响应更新,其原理对data的getter / setter方法进行拦截(Object.defineProperty-Vue2.0 Proxy-Vue3.0 ),利用发布订阅的设计模式,在getter方法中进行订阅,在setter方法中发布通知,让所有订阅者完成响应。在
转载
2024-08-09 11:20:59
120阅读
下图这是IO流对象的大类 字节流简单示例public class IODemo {
public static void main(String[] args) throws IOException {
File file = new File("……");
File file2 = new File("……");
转载
2023-09-16 22:13:52
49阅读
线程安全是并发编程中的重要关注点。造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。关键字 Synchronized可以保证在同一个时刻,只有一个线程可以执行某个方法或者某个代码块。
原创
2022-03-07 11:18:25
159阅读