数据库
INC随我
这个作者很懒,什么都没留下…
展开
-
数据库事务并发访问中的问题及隔离机制
我们直接从隔离级别从低到高进行介绍1.更新丢失目前主流数据库都会自动进行枷锁来避免,所以不好从数据库层面进行模拟,举个例子:取款事务存款事务开始事务开始事务查询转账余额为100元查询转账余额为100元存入20元,余额变为120元提交事务取出10元,余额改为90元回滚事务,余额恢复为100元更新丢失从上表我们可以看出...原创 2019-06-05 18:50:03 · 517 阅读 · 0 评论 -
当前读与快照读
本文是根据慕课相关课程学习后,并总结了以下几篇博文后做的总结https://blog.csdn.net/silyvin/article/details/79280934https://www.cnblogs.com/cat-and-water/p/6427612.htmlinnodb的默认事务隔离级别是rr(可重复读)。它的实现技术是mvcc。基于版本的控制协议。该技术不仅可以保证innod...原创 2019-06-13 11:22:47 · 577 阅读 · 0 评论 -
redis如何实现分布式锁
1.分布式锁需要解决的问题互斥性:任意时刻只能有一个客户端拥有锁,不能同时多个客户端获取安全性:锁只能被持有该锁的用户删除,而不能被其他用户删除死锁:获取锁的客户端因为某些原因而宕机,而未能释放锁,其他客户端无法获取此锁,需要有机制来避免该类问题的发生容错:当部分节点宕机,客户端仍能获取锁或者释放锁2.如何通过Redis实现分布式锁:(非完善方法)SETNX key value ...原创 2019-06-13 11:23:43 · 29363 阅读 · 0 评论 -
redis如何实现异步队列
一.如何使用Redis做异步队列1.使用List作为队列, RPUSH生产消息, LPOP消费消息➢缺点:没有等待队列里有值就直接消费➢弥补:可以通过在应用层引入Sleep机制去调用LPOP重试2. BLPOP key [key .. timeout :阻塞直到队列有消息或者超时➢缺点:只能供-一个消费者消费二.如何使用Redis做异步队列pub/sub :主题订阅者模式发送者(...原创 2019-06-13 11:25:27 · 2398 阅读 · 0 评论 -
常见面试题的基础总结(数据库篇)
由于这些内容都是比较早之前进行的整理的,所以有的部分是参考了他人的博文,但是由于是之前找的,所以具体的博文链接找不到了,如果原博主看到这个文章或者有人知道其中部分内容的原博文,请与我联系,我将加上原链接,谢谢1、为什么要使用索引为了快速查询数据2、如何创建索引唯一索引CREATE UNIQUE INDEX 索引名称 ON 表名称 (列名称)简单索引CREATE I...原创 2019-06-13 11:33:07 · 829 阅读 · 0 评论 -
springboot集成Redis
由于之前在项目中集成了身份验证以及权限功能,所以在请求操作时会有大量数据库读操作来获取用户的角色以及所拥有的权限,这对于数据库来说是一个巨大的性能开支,所以我打算尝试使用redis来减少数据库读写,而是使用缓存读写,本文是在看完集成Redis入门后所做的总结,所以对很多地方还有疑问,请大家酌情参考一、添加Redis依赖<dependency> <groupId>...原创 2019-08-13 11:36:07 · 1663 阅读 · 0 评论 -
Redis与LRU
参考文章https://zhuanlan.zhihu.com/p/34133067https://blog.csdn.net/azurelaker/article/details/85045245https://www.bilibili.com/video/av45625512最近在使用redis,然后看到了redis与LRU相关的一些内容,再此对之前所看的一些博文进行总结一、什么是...原创 2019-08-13 11:38:59 · 6700 阅读 · 0 评论 -
如何保证消息消费的幂等性
幂等性概念及业界主流解决方案幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品使用约支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条...业界主流的幂等性操作:唯一ID + 指纹...原创 2019-10-07 22:17:24 · 324 阅读 · 0 评论