Redis实现-持久化 Redis实现-持久化一、引言 Redis 作为一款高性能的内存数据库,其数据主要存储在内存中,从而提供了极快的读写速度。然而,内存是易失性存储,一旦服务器进程退出或宕机,内存中的数据就会全部丢失。 为了解决这一问题,Redis 提供了持久化功能,将内存中的数据保存到磁盘中,以便在重启后恢复数据。Redis 支持两种持久化方式:RDB持久化和 AOF持久化。本文将深入剖析这两种持久化机制 2023-03-08 #Redis
SpringMVC全流程源码解析 SpringMVC全流程源码解析前言 SpringMVC作为当今Java Web开发的事实标准,它优雅地屏蔽了底层Servlet API的复杂性,提供了一种声明式、注解驱动的开发模式。 1、体系概览——DispatcherServlet的继承体系在阅读源码之前,我们必须先熟悉SpringMVC的核心——DispatcherServlet。它的继承体系设计得相当精妙,每一层都承担了特定的职责。 2023-03-01 #框架 #Spring源码
Redis实现-5种对象类型的底层实现 Redis实现-5种对象类型的底层实现 Redis 作为一个高性能的键值对数据库,其内部实现充满了精巧的设计。在 Redis 中,所有的键和值都被抽象为对象(Object),这一层抽象为 Redis 提供了极大的灵活性:不同类型的值可以使用不同的底层数据结构,并且可以在运行时根据使用情况动态切换编码,以达到最优的性能和内存效率。 本文将深入剖析 Redis 对象系统的实现细节,包括五种核 2023-02-08 #Redis
SpringBoot应用启动流程解析 SpringBoot应用启动流程解析 每个使用 Spring Boot 的开发者都极为熟悉的入口:SpringApplication.run()。这个简单的静态方法调用,背后隐藏着极其精妙和复杂的启动逻辑。文本文将围绕两大核心部分展开:SpringApplication 的构造阶段和run 方法的执行阶段。 1、SpringApplication 的构造 当我们调用 SpringAppli 2023-01-21 #框架 #Spring源码
从源码深入理解Mybatis 从源码深入理解Mybatis一、前言1.1 mybatis简述 myBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射,几乎免除了所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO为数据库中的记录。 官网地址:https://mybatis.org/mybatis 2022-12-18 #框架 #源码
动态规划(Dynamic Programming) 动态规划(Dynamic Programming)详解1. 引言动态规划(Dynamic Programming,简称DP)是算法面试中的常客,也是很多初学者觉得头疼的难点。它的思想其实并不复杂,核心是“记住已经解决过的子问题的解,避免重复计算”。本文将从动态规划的基本概念出发,梳理其通用解题模板,并通过几个经典案例,带你彻底掌握动态规划。 2. 什么是动态规划?动态规划是一种通过把原问题分解 2022-10-11 #数据结构与算法
MySQL 日志 MySQL日志一、错误日志MySQL错误日志记录了mysql启动和停止时,以及服务器在运行过程中发生任何严重错误的相关信息,当数据库出现任何障碍导致无法正常使用时,可以首先查看此日志。 错误日志是默认开启的,默认存放的目录为MySQL的数据目录(var/log),默认的日志文件名为mysqld.log。 查看日志位置指令: 1show variables like 'log_erro 2021-10-14 #数据库
Redis实现-压缩列表 Redis实现-压缩列表一、压缩列表在Redis中的使用压缩列表(ziplist)是列表键和哈希键的底层实现之一。压缩列表是Redis为了节约内存而开发的。 当一个列表项,并且每个列表项要么就是小整数值,要么就是比较短的字符串,那么Redis就会使用压缩列表来做列表键的底层实现。 12127.0.0.1:6379> rpush lst 1 3 5 10086 "hello&qu 2021-09-10 #Redis
Redis实现-整数集合 Redis实现-整数集合一、整数集合在Redis中的使用整数集合(intset)是集合键的底层实现之一。当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。 12345678127.0.0.1:6379> sadd members 1 3 5 7 9(integer) 5127.0.0.1:6379> smembers memb 2021-09-10 #Redis
Redis实现-跳跃表 Redis实现-跳跃表一、什么是跳跃表跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 跳跃表支持平均O(logN)、最坏O(N)复杂度。 在大部分情况下,跳跃表的效率可以和平衡树相媲美,并且因为跳跃表的实现比平衡树要更简单。 123451. 一个跳跃表应该有若干个层(Level)链表组成2. 跳跃表中最底层的链表包含所 2021-09-10 #Redis