08 2023 档案

摘要:在项目中,将图片等文件资源上传到阿里云的OSS,减少服务器压力。 项目中导入阿里云的SDK <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.10.2</ 阅读全文
posted @ 2023-08-23 14:19 秋天Code 阅读(128) 评论(0) 推荐(0) 编辑
摘要:数据库中一些表的公共字段,例如修改时间、修改人、创建时间、创建人,我们一般都是这样来处理的: employee.setCreateTime(LocalDateTime.now()); employee.setUpdateTime(LocalDateTime.now()); employee.setC 阅读全文
posted @ 2023-08-22 21:11 秋天Code 阅读(66) 评论(0) 推荐(0) 编辑
摘要:介绍 Redis是运行在内存中的数据库,当我们关闭了Redis服务器后,内存中的数据会丢失吗? 答案是不会的,因为Redis有持久化功能,能够将内存中的数据保存到磁盘中的文件,以此来实现数据的永久保存。 在Redis中,有两种持久化功能: RDB持久化功能,简称RDB快照AOF持久化功能,简称AOF 阅读全文
posted @ 2023-08-17 21:54 秋天Code 阅读(17) 评论(0) 推荐(0) 编辑
摘要:介绍 我们知道Redis是运行在内存中的数据库,那么当我们关闭Redis服务器后,内存中的数据会不会丢失? 当然是不会!因为Redis有持久化机制,所谓持久化,就是将内存中的数据保存到磁盘文件上,以此来达到永久保存数据的目的。 在Redis中,有两种持久化机制: RDB持久化AOF持久化 RDB持久 阅读全文
posted @ 2023-08-17 16:56 秋天Code 阅读(21) 评论(0) 推荐(0) 编辑
摘要:定义 Redis中的数据结构,链表和压缩列表这两种数据结构是列表对象的底层实现方式。 当时考虑到链表的附加空间太大,节点的内存都是单独分配的,还会导致内存碎片化问题严重。 因此从Redis3.2开始,对列表的底层数据结构进行了改造,即使用quickList代替链表list和压缩列表ziplist 快 阅读全文
posted @ 2023-08-16 15:30 秋天Code 阅读(36) 评论(0) 推荐(0) 编辑
摘要:介绍 在Redis中,我们可以为键值对设置有效期,现在面临一个问题,如果一个键值对过期了,那么我们应该怎么删除呢? 我们目前有三种方案: 定时删除:在设置键的过期时间的同时,为此键设置一个定时器timer,定时器在键的过期时间来临时,立即自动执行键的删除。惰性删除:放任键不管,但是每次从获取该键时, 阅读全文
posted @ 2023-08-16 15:25 秋天Code 阅读(16) 评论(0) 推荐(0) 编辑
摘要:对象类型和结构 在Redis中,无论是键key还是值value都是一个对象,每次对Redis数据库创建一个新的键值对时,就至少会创建两个对象。 常见的对象类型有: 字符串列表哈希集合有序集合 这些对象在Redis中统一用一个结构体redisObject来表示,只不过type属性不同。 typeof 阅读全文
posted @ 2023-08-15 16:40 秋天Code 阅读(3) 评论(0) 推荐(0) 编辑
摘要:定义 压缩列表ziplist是Redis中列表和哈希键的底层实现方式之一。 当一个列表只包含少量列表项,并且每个列表项要么是小整数值,要么是较短的字符串时,那么Redis就会使用压缩列表来作为列表的底层实现。 另外,当一个哈希表中只包含少量键值对时,并且每个每个键值对的键key和值value要么是小 阅读全文
posted @ 2023-08-14 22:24 秋天Code 阅读(31) 评论(0) 推荐(0) 编辑
摘要:定义 整数集合是集合的实现方式之一,当一个集合只包含整数值元素时,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合的底层实现。 整数集合就是存放整数的一个数组,整数集合的结构体定义: typeof struct intset { // 编码方式 uint32_t encoding; 阅读全文
posted @ 2023-08-14 21:07 秋天Code 阅读(19) 评论(0) 推荐(0) 编辑
摘要:字典是一种用来保存键值对的数据结构。 在字典中,一个key与一个value相对应,字典中的key是唯一的。 在Redis中字典使用哈希表作为底层实现,用数组来表示一个哈希表,每个元素都是一对key-value 同样,在Redis中字典由三部分组成: 哈希节点,保存一对key-value哈希表,用来爆 阅读全文
posted @ 2023-08-14 16:46 秋天Code 阅读(16) 评论(0) 推荐(0) 编辑
摘要:链表是一种常用的数据结构,提供了顺序访问的方式,而且高效地增删操作。 Redis中广泛使用了链表,例如:列表的底层实现之一就是链表。 在Redis中,链表分为两部分:链表信息 + 链表节点。 链表节点用来表示链表中的一个节点,基础的值和指向前和后的指针链表信息,用来保存整个链表的信息,例如首尾节点、 阅读全文
posted @ 2023-08-14 15:38 秋天Code 阅读(22) 评论(0) 推荐(0) 编辑
摘要:定义 众所周知,Redis是由C语言写的。 对于字符串类型的数据存储,Redis并没有直接使用C语言中的字符串。 而是自己构建了一个结构体,叫做“简单动态字符串”,简称SDS,比C语言中的字符串更加灵活。 SDS的结构体是这样的: struct{ int len; // 数组中已使用的字节的数量,即 阅读全文
posted @ 2023-08-14 15:21 秋天Code 阅读(37) 评论(0) 推荐(0) 编辑
摘要:参考文章 Java中的偏向锁,轻量级锁, 重量级锁解析_萧萧九宸的博客-CSDN博客 本文是本人对以上文章的整理,建议先去看以上文章。 在Java中,一个锁对象的四种状态: 无锁偏向锁轻量级锁重量级锁 在Java中,一个锁就是一个对象 synchronized代码块是由一对monitorenter和 阅读全文
posted @ 2023-08-14 12:44 秋天Code 阅读(22) 评论(0) 推荐(0) 编辑
摘要:并发编程的三个理念 原子性:一个操作要么全部完成,要么全部失败。可见性:当一个线程对共享变量进行修改后,其他线程也应立刻看到。有序性:程序按照顺序执行 synchronized基本使用 修饰静态方法,锁的是类,Class字节码对象修饰实例方法,锁的是当前实例对象修饰代码块,锁的是当前指定的对象 原理 阅读全文
posted @ 2023-08-14 12:14 秋天Code 阅读(7) 评论(0) 推荐(0) 编辑
摘要:前言 在并发编程领域,最核心的两个理念就是同步和互斥,并发编程就是围绕这两个核心概念来完成的。 互斥:同一时刻只能有一个线程持有共享资源同步:多个线程之间协调、互作 在最初,人们利用信号量机制来实现互斥和同步,但是对于编程人员来说,在编码中嵌入大量的信号量操作,代码冗余,而且出错概率增大,后来就有了 阅读全文
posted @ 2023-08-13 13:24 秋天Code 阅读(70) 评论(0) 推荐(0) 编辑
摘要:我们知道Java对象分配在堆内存中,一个对象在堆内存中的存储布局可以分为三部分: 对象头Header实例数据对齐填充 1. 对象头Header 对象头部分又包含两部分: 第一部分是用于存储对象自身运行时数据,例如哈希码、GC分代年龄等第二部分就是类型指针,即此对象是哪一个类的实例。 如果是Java数 阅读全文
posted @ 2023-08-12 18:41 秋天Code 阅读(36) 评论(0) 推荐(0) 编辑
摘要:SPI的全称是Service Provider Interface服务提供接口,是JDK内置的一种 服务提供发现机制,例如我们常用的数据库驱动Driver,就是基于SPI来做的。 运行机制: 服务的调用方需要调用服务提供方的服务,如果在调用方中直接来调用服务提供方,会导致耦合性较高,不利于扩展 因此 阅读全文
posted @ 2023-08-12 11:56 秋天Code 阅读(6) 评论(0) 推荐(0) 编辑
摘要:介绍 undo log 和 redo log是由Inno DB存储引擎生成的。 在MySQL服务器架构中,分为三层:连接层、服务层(server层)、执行层(存储引擎层) bin log 是 binary log的缩写,即二进制日志。 MySQL在完成一次DML操作后,Server层还会生成一条bi 阅读全文
posted @ 2023-08-08 15:03 秋天Code 阅读(64) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示