摘要: 加分布式锁 其实前面介绍过的加唯一索引或者加防重表,本质是使用了数据库的分布式锁,也属于分布式锁的一种。但由于数据库分布式锁的性能不太好,我们可以改用:redis或zookeeper。 鉴于现在很多公司分布式配置中心改用apollo或nacos,已经很少用zookeeper了,我们以redis为例介 阅读全文
posted @ 2024-02-04 15:53 予真 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 什么是Redis? Redis(Remote Dictionary Server) Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API 的非关系型数据库。 传统数据库遵循 ACID 规 阅读全文
posted @ 2024-02-04 15:25 予真 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 基于binlog+Canal+Redis方案是一种解决分布式缓存和数据库之间数据一致性问题的方法,它通过MySQL的binlog和Canal机制,实现数据同步到Redis缓存,以保证数据一致性。 . MySQL主备复制原理 2. MySQL中binlog配置 3. Canal工作原理、安装、配置、使 阅读全文
posted @ 2024-02-04 15:02 予真 阅读(723) 评论(0) 推荐(0) 编辑
摘要: 放入缓存中的数据应该指定过期时间,为什么呢, 因为过期时间可以确保缓存中的数据不会永久存在,从而避免缓存中出现过时或无效的数据。指定过期时间有以下几个重要原因:1. 数据更新和一致性:当数据发生变化时,缓存中的数据可能会变得过时。 如果不过时,新的数据就更新不了,就失去了缓存的意义; 通过设置过期时 阅读全文
posted @ 2024-02-04 14:41 予真 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 什么是大key 很多朋友肯定在想redis的key能有多大呀? 这里就有个误区了,所谓的大key问题是某个key的value比较大,所以本质上是大value问题。 “ 这样就对上了,key往往是程序可以自行设置的,value往往不受程序控制,因此可能导致value很大。 设想一种场景: “ 在线音乐 阅读全文
posted @ 2024-02-04 13:48 予真 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是I/O在计算机操作系统中,所谓的I/O就是输入(Input)和输出(Output),也可以理解为读(Read)和写(Write),针对不同的对象,I/O模式可以划分为磁盘IO模型和网络IO模型。IO操作会涉及到用户空间和内核空间的转换,先来理解以下规则: 内存空间分为用户空间和内核空间, 阅读全文
posted @ 2024-02-04 13:48 予真 阅读(722) 评论(0) 推荐(1) 编辑
摘要: 2.Redis 单线程含义 Redis 的网络 IO 和键值对读写是由一个线程来完成的 Redis 其他功能,如持久化、异步删除、集群数据同步等其实都是由额外线程执行 3.Redis单线程设计 3.1 多线程需要解决的问题 4.多路复用机制 Redis 多路复用机制在网络 IO 操作中能并发处理大量 阅读全文
posted @ 2024-02-04 10:38 予真 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 数据库有json类型时,Java代码最好直接用JSON类去标识该字段, 这样返回数据的时候可以既能返回jsonobject,又能返回jsonarray 当然 以上都属于用的阿里fastjson。 阅读全文
posted @ 2024-02-04 09:36 予真 阅读(7) 评论(0) 推荐(0) 编辑