- 博客(11)
- 收藏
- 关注
原创 MySQL中的事务(ACID,并发事务问题,事务隔离级别)
在数据库操作的世界里,事务(Transaction)是一个至关重要的概念。无论是进行金融交易、订单处理还是数据同步,事务都能确保一系列操作要么全部成功,要么全部失败,从而维护数据的一致性和完整性。作为最流行的开源关系型数据库之一,MySQL对事务的支持尤为强大且灵活。 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求,即这些操作要么同时成功,要么同时失败。
2025-04-14 14:00:00
1006
原创 Redis在Java中的应用(作为分布式锁)
分布式锁:满足分布式系统或者集群模式下多进程可见并且互斥的锁。当然,除了多线程可见和互斥,还需要考虑高可见性,高性能。安全性等。
2025-04-14 08:00:00
501
原创 Redis在Java中的应用(作为消息队列)
Stream是Redis5.0之后引入的一种新型的数据结构,可以实现一个功能非常完善的消息队列官方文档有对于Stream命令的详解(命令 |文档 (redis.io)发布消息XADD,对于XADD命令官方文档是这样说的将指定的 stream entry 附加到 stream 的指定 key 处。如果该键不存在,则作为运行此命令的副作用,该键是使用 stream 值创建的。可以使用 NOMKSTREAM 选项禁用 stream 密钥的创建。条目由字段-值对列表组成。
2025-04-13 15:45:00
584
原创 Redis在Java中的应用(作为缓存)
4.给业务添加多级缓存(注意,添加缓存意味着又要考虑缓存穿透,缓存雪崩,缓存击穿问题)缓存击穿问题又称作热点key问题,就是被一个高并发并且缓存重建业务较复杂的key突然失效了,无数的请求访问在瞬间给数据库带来巨大的冲击。缓存雪崩问题是指在同一时间段大量的key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。客户端请求的数据在缓存和数据库中都不存在,这样的缓存永远不会生效,这些请求都会打到数据库。如果使用了缓存,就必须考虑常见的缓存存在的问题。2.空值解决缓存穿透。
2025-04-13 10:08:32
673
原创 Redis入门:Redis中的数据结构和在Java中的实现
由于Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样:其数据结构又可以分为基本类型和特殊类型基本类型: 1.字符串(String)—— 最简单的数据容器 2.列表(List)—— 双向链表结构 3.集合(Set)—— 无序唯一元素集合 4.有序集合(Sorted Set)—— 带分数的集合 5.哈希表(Hash)—— 键值对的集合特殊类型: 1.GEO类型——主要用于存储
2025-04-11 10:34:49
989
原创 Redis入门:从零开始掌握高性能内存数据库
Redis(Remote Dictionary Server)是一个开源的,支持多种数据结构,常被用作缓存、消息队列、分布式锁等,对比传统的MySQL来说,Redis是一种非结构化的非关系型数据库。MySQL数据库和Redis数据库的对比::Redis将数据存储在内存,读写速度达QPS,读写速度极快,单线程模型避免了线程切换的开销,进一步提升了性能。:支持多种数据类型(Redis中的数据结构将单独写一篇文章来讲解),满足不同业务需求。:通过RDB快照和AOF日志。
2025-04-10 23:00:00
776
原创 MySQL中的存储引擎
存储引擎是MySQL数据库管理系统用于存储、处理和检索数据的底层软件组件。MySQL支持多种存储引擎,每种存储引擎都有其独特的设计目标和适用场景。说白了,存储引擎就是存储数据,建立索引,更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以称为表类型。1.创建表时指定存储引擎cerate table 表名(字段1 字段1类型[comment 字段1注释],..........字段N 字段N类型[comment 字段N注释],[comment 表注释]
2025-04-10 15:07:18
299
原创 MySQL中的索引(包含结构,性能分析和使用规则)
什么是索引?索引是帮助MySQL高效获取数据的数据结构(有序),即在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这种数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。那MySQL中为什么要使用索引呢?首先,从定义出发->索引是帮助MySQL高效获取数据的数据结构(有序),那就是说索引能够帮助MySQL高效获取数据,能够显著提升查询效率;其次,它类似于书籍的目录,能够快速定位到所需的数据,而无需逐行扫描整个表,在一定程度上。
2025-04-09 09:21:47
661
原创 MySQL中的锁
在多用户环境中,多个事务可能同时尝试修改或读取同一行数据。如果没有锁机制,可能会导致以下问题:数据不一致:两个事务同时修改同一行数据,最终结果可能不符合预期。脏读(Dirty Read):一个事务读取了另一个事务未提交的修改。幻读(Phantom Read):一个事务在多次查询时,发现返回的结果集发生了变化(如新增或删除行)。不可重复读(Non-Repeatable Read):一个事务多次读取同一行数据,结果不一致。锁的作用就是通过限制并发访问,避免这些问题,从而保证事务的 ACID 特性(原
2025-04-08 12:04:43
794
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人