![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 95
Powerstot
热爱仅仅只是热爱
展开
-
Redis 跳表
文章目录基本概念动态查找的数据结构数组结构链表平衡树跳表的雏形跳跃链表的实现原理简单索引多级索引索引层数和索引节点密度跳表的复杂度分析时间复杂度分析跳表的空间存储跳表在 Redis 中的应用跳表随机层数的实现原理Redis 关于跳表的源码参考基本概念允许快速查询一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(log n),优于普通队列的O(n)。动态查找的数据结构可以作为查找数据结构的包括:线性结构:数组、链表非线性结构:平衡树数组结构缺点: 移动和删除时需要整体移原创 2022-05-25 21:21:06 · 3269 阅读 · 0 评论 -
Redis 速度快的原因
文章目录基于内存实现高效的数据结构SDS1. 字符串长度处理2. 内存重新分配3. 不需要处理二进制安全 '\0'双端链表1. 前后节点2. 头尾节点3. 链表长度压缩列表字典跳表合理的数据编码embstr 和 raw 的区别Redis 中 embstr 和 raw 编码的界限1. 结论2. 原因创建 stringObject 的逻辑合适的线程模型1. I/O多路复用模型2. 避免上下文切换3. 单线程模型Redis 的瓶颈参考基于内存实现由于是存储在内存中的数据库, 不会被磁盘 IO 影响到数据读写的原创 2022-05-25 21:00:23 · 1327 阅读 · 2 评论 -
Redis 分布式锁简单解析
文章目录概念优秀分布式锁的特征分布式锁的实现方式最简单版本(互斥性)支持过期时间(互斥性, 安全性)加上 owner (互斥性, 安全性, 对称性)使用 Lua (检查和删除的原子性)可靠性如何保证容灾考虑主从容灾多机部署可靠性深究Network Delay(网络延迟)Process Pause(进程暂停)Clock Drift(时钟漂移)概念分布式锁就是分布式场景下的锁,比如多台不同机器上的进程,去竞争同一项资源,就是分布式锁。优秀分布式锁的特征互斥性: 只能有一个竞争者持有锁安全性:原创 2022-05-25 20:46:28 · 215 阅读 · 0 评论 -
Redis数据结构、持久化技术和三大问题
文章目录1. Redis 执行过程2. 缓存雪崩2.1 大量数据过期2.1.1 均匀设置过期时间2.1.2 互斥锁2.1.3 双 key 策略2.1.4 后台更新缓存2.2 Redis 故障宕机2.2.1 服务熔断或请求限流(发生故障后的方案)2.2.2 构建 Redis 缓存高可靠集群(发生之前就可以做的方案)2. 缓存击穿3. 缓存穿透3.1 非法请求限制3.2 缓存空值或默认值3.3 使用布隆过滤器判断数据是否存在4. Redis 的持久化技术 AOF 与 RDB4.1 AOF 日志4.1.1 概念4原创 2022-05-25 20:21:41 · 661 阅读 · 1 评论 -
Java se:JDBC
JDBCJava DataBase Connectivity Java 数据库连接, Java语言操作数据库本质是官方定义的一套操作关系型数据库的规则(接口),各个数据库厂商提供驱动jar包(真正执行的代码)来实现接口步骤:1.导入驱动jar包,xxx.jar放入项目libs目录下,右键Add as Library2.注册驱动3.获取数据库链接对象Connection4.定义sql语句5.获取执行sql语句的对象Statement6.执行sql,并处理结果7.释放资源代码实现原创 2020-11-11 15:26:39 · 93 阅读 · 0 评论 -
MySQL基础
SQL1.什么是SQL? Structured Query Language:结构化查询语言 其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。 2.SQL通用语法 1. SQL 语句可以单行或多行书写,以分号结尾。 2. 可使用空格和缩进来增强语句的可读性。 3. MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。 4. 3 种注释 * 单行注释: -- 注释内容 或 # 注释内容(mysql 特有) * 多行注释转载 2020-10-29 23:10:56 · 77 阅读 · 0 评论