随笔分类 -  编程语言

摘要:在此系列文章中,我总结了Spring几乎所有的扩展接口,以及各个扩展点的使用场景。并整理出一个bean在spring中从被加载到最终初始化的所有可扩展点的顺序调用图。这样,我们也可以看到bean是如何一步步加载到spring容器中的。 InstantiationAwareBeanPostProces 阅读全文
posted @ 2023-10-30 15:13 夕阳醉了 阅读(510) 评论(0) 推荐(2) 编辑
摘要:在此系列文章中,我总结了Spring几乎所有的扩展接口,以及各个扩展点的使用场景。并整理出一个bean在spring中从被加载到最终初始化的所有可扩展点的顺序调用图。这样,我们也可以看到bean是如何一步步加载到spring容器中的。 BeanFactoryPostProcessor 1、概述 pu 阅读全文
posted @ 2023-10-19 15:34 夕阳醉了 阅读(295) 评论(0) 推荐(0) 编辑
摘要:在此系列文章中,我总结了Spring几乎所有的扩展接口,以及各个扩展点的使用场景。并整理出一个bean在spring中从被加载到最终初始化的所有可扩展点的顺序调用图。这样,我们也可以看到bean是如何一步步加载到spring容器中的。 BeanDefinitionRegistryPostProces 阅读全文
posted @ 2023-10-10 10:33 夕阳醉了 阅读(278) 评论(0) 推荐(3) 编辑
摘要:1、引言 在现代应用程序中,高性能和低延迟是至关重要的因素。而在处理大规模数据操作时,Redis作为一种快速、可靠的内存数据库,成为了许多开发人员的首选。 在Redis中,每个操作都需要与服务器进行往返通信,存在网络开销损耗,当有批量命令执行时,就会有较大的网络开销损耗。为了解决这个问题,Redis 阅读全文
posted @ 2023-09-11 16:36 夕阳醉了 阅读(599) 评论(1) 推荐(1) 编辑
摘要:## 1、前言 Redis作为一款高性能的缓存数据库,为许多应用提供了快速的数据访问和存储能力。然而,在使用Redis时,我们不可避免地会面对一些常见的问题,如缓存雪崩、缓存穿透和缓存击穿。本文将深入探讨这些问题的本质,以及针对这些问题的解决方案。 ## 2、缓存雪崩 ### 2.1、问题描述 * 阅读全文
posted @ 2023-08-28 13:45 夕阳醉了 阅读(706) 评论(1) 推荐(1) 编辑
摘要:在分布式系统中,实现对共享资源的安全访问是一个关键问题。Redis作为一种高性能的内存数据库,提供了多种方式来实现分布式锁,以解决多个节点之间对共享资源的并发访问问题。 本文将介绍五种Redis分布式锁的解决方案及其原理、应用场景以及Java代码的实现步骤。 ## 1、SETNX `SETNX`(S 阅读全文
posted @ 2023-08-08 15:58 夕阳醉了 阅读(627) 评论(0) 推荐(2) 编辑
摘要:前面文章我们介绍了Redis的主从模式是一种在Redis中实现高可用性的方式,但也存在一些缺点。 ## 1、主从模式缺点 * **写入单点故障:**在主从模式中,写入操作只能在主节点进行,如果主节点宕机,写入将无法执行。虽然可以通过升级从节点为主节点来解决,但这会增加故障切换的复杂性。 * **写入 阅读全文
posted @ 2023-08-07 15:27 夕阳醉了 阅读(482) 评论(0) 推荐(1) 编辑
摘要:在前面的文章中介绍了Redis的主从复制,但主从复制存在一定的缺陷。如果Master节点宕机,因为不具备自动恢复功能,需要人工干预,那么在这个干预过程中Redis将不可用。 为了解决这一问题,Redis官方推荐一种高可用方案:哨兵模式(Sentinel)。 ## 1、什么是哨兵模式? 哨兵模式是Re 阅读全文
posted @ 2023-08-04 09:30 夕阳醉了 阅读(574) 评论(3) 推荐(1) 编辑
摘要:[toc] ## 1、概念 主从复制是Redis的一项重要特性,用于将一个Redis服务器(Master主节点)的数据复制到其他Redis服务器(Slave从节点),以实现数据的高可用性和读写分离。数据的复制是单向的,只能由主节点到从节点。 ![](https://img2023.cnblogs.c 阅读全文
posted @ 2023-08-03 12:17 夕阳醉了 阅读(643) 评论(0) 推荐(2) 编辑
摘要:## 1、引言 Redis作为一种高性能的内存数据存储系统,常被用作缓存、会话存储、消息队列等多种应用场景。然而,由于其数据存储在内存中,一旦发生意外或服务器重启,数据就会丢失。为了保障数据的持久性和安全性。 Redis提供了多种持久化方案: * RDB(Redis DataBase):按指定的时间 阅读全文
posted @ 2023-08-02 10:19 夕阳醉了 阅读(725) 评论(0) 推荐(2) 编辑
摘要:## 1、事务的定义 Redis的事务提供了一种“将多个命令打包, 然后一次性、按顺序地执行”的机制。 redis事务的主要作用就是串联多个命令防止别的命令插队。 但是,事务并不具有传统数据库事务的特性,如回滚。 ## 2、事务命令 Redis中的事务可以通过以下命令来执行: * `MULTI`:用 阅读全文
posted @ 2023-07-31 09:54 夕阳醉了 阅读(504) 评论(0) 推荐(0) 编辑
摘要:## 1、介绍 前面的文章已经介绍了redis的5种基本数据类型,redis6中另外还有3种特殊的数据类型,分别是 Bitmaps (位图)、HyperLogLogs(基数统计)和 geospatial (地理位置)。本文将继续探讨它们的特性、原理以及应用场景。 ## 2、 Bitmaps(位图) 阅读全文
posted @ 2023-07-29 13:42 夕阳醉了 阅读(187) 评论(0) 推荐(0) 编辑
摘要:## 1、介绍 Redis是一个快速、开源的内存数据库,支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。除了基本的数据存储和检索功能外,Redis还提供了许多高级功能,其中之一就是发布订阅(Pub/Sub)。 发布订阅是一种消息传递模式,它允许消息的发布者(发布者)将消息发送给多个订阅者( 阅读全文
posted @ 2023-07-28 10:35 夕阳醉了 阅读(789) 评论(0) 推荐(0) 编辑
摘要:在Redis中,数据以键值对的形式存储。Redis支持五种主要的数据类型,每种类型都有不同的用途和特性。 本文将介绍Redis的五种数据类型:字符串(string),哈希(hash),列表(list),集合(set)和有序集合(sorted set)。 ## 1. 字符串(String) ### * 阅读全文
posted @ 2023-07-27 15:39 夕阳醉了 阅读(612) 评论(0) 推荐(2) 编辑
摘要:## 1. 介绍 Redis是一个高性能的开源key-value数据库。它被广泛应用于缓存、会话存储、实时分析、消息队列等场景。Redis具有以下三个主要特点: * **数据持久化**:Redis支持将内存中的数据保存到磁盘上,确保数据在断电或重启后不丢失。 * **多样数据结构**:除了支持简单的 阅读全文
posted @ 2023-07-26 18:00 夕阳醉了 阅读(884) 评论(1) 推荐(3) 编辑
摘要:## 前言 随着业务量的不断增长,数据库的读写压力也越来越大。为了解决这个问题,我们可以采用读写分离的方案来分担数据库的读写负载。本文将介绍如何使用 Spring Boot + MyBatis Plus + MySQL 实现读写分离。 ## 读写分离原理 读写分离是指将数据库的读操作和写操作分别放到 阅读全文
posted @ 2023-06-20 22:12 夕阳醉了 阅读(491) 评论(0) 推荐(0) 编辑
摘要:类的加载机制 ? 双亲委派机制 ? 什么是类加载器 ? 自定义类加载器有哪些应用场景 ? 通常,在关于Java的类加载部分会遇到以上疑问,本文将对类加载重要部分做详细介绍,包括重要的基础概念和应用场景,在编写过程中也帮助作者重新熟悉并加固了知识点,希望在看完后对读者能有所帮助。 一、类加载过程 程序 阅读全文
posted @ 2022-11-15 14:44 夕阳醉了 阅读(6138) 评论(0) 推荐(3) 编辑
摘要:什么是CPU多级缓存? 什么是缓存一致性? volatile关键字的作用? synchronized关键字和volatile 关键字的区别? 一、简介 Java内存模型是在硬件内存模型上的更高层的抽象,它屏蔽了各种硬件和操作系统访问的差异性,保证了Java程序在各种平台下对内存的访问都能达到一致的效 阅读全文
posted @ 2022-11-02 14:16 夕阳醉了 阅读(166) 评论(0) 推荐(0) 编辑
摘要:一、前提 JVM性能调优牵扯到各方面的取舍与平衡,往往是牵一发而动全身,需要全盘考虑各方面的影响。在优化时候,切勿凭感觉或经验主义进行调整,而是需要通过系统运行的客观数据指标,不断找到最优解。同时,在进行性能调优前,您需要理解并掌握以下的相关基础理论知识: 1、JVM垃圾收集器和垃圾回收算法 2、J 阅读全文
posted @ 2022-10-27 16:08 夕阳醉了 阅读(841) 评论(1) 推荐(2) 编辑