摘要:
如果给你一个包含一亿行数据的超大文件,让你在一周之内将数据转化导入生产数据库,你会如何操作? 由于时间紧,而数据量又超大,所以需要: 拆分文件 多线程导入 拆分文件 首先我们可以写个小程序,或者使用拆分命令 split 将这个超大文件拆分一个个小文件。 -- 将一个大文件拆分成若干个小文件,每个文件 阅读全文
摘要:
多继承虽然能使子类同时拥有多个父类的特征,但是其缺点也是很显著的,主要有两方面: (1)如果在一个子类继承的多个父类中拥有相同名字的实例变量,子类在引用该变量时将产生歧义,无法判断应该使用哪个父类的变量。 例如:类ClassA: public class ClassA { protected int 阅读全文
摘要:
引言 什么是跨域(CORS) 什么情况会跨域 解决方案 前端解决方案 后端解决方案 具体方式 一、使用Filter方式进行设置 二、继承 HandlerInterceptorAdapter 三、实现 WebMvcConfigurer 四、使用Nginx配置 五、使用 @CrossOrgin 注解 S 阅读全文
摘要:
事务回滚机制 其实,讨论MySQL的事务回滚机制,也就是在说MySQL的事务原子性是如何实现的(关于事务之前文章中有过简单介绍)。 所谓原子性,就是指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做;如果事务中的一个sql语句执行失败,则已执行的语句必须回滚,数据库会退回到事务前的状 阅读全文
摘要:
我们知道Redis是支持事务的,但是它里面的事务为什么不支持回滚呢? 1.在Redis中,命令只会因为错误的语法而失败,或者是命令用在了错误类型的键上面; 也就是说,从实用的角度说,失败的命令是由编译错误造成的,而这些错误应该在开发过程中被发现,而不应该出现在生产环境中。 2.因为不需要对回滚进行支 阅读全文
摘要:
如何用好锁,是程序员的基本素养之一。 高并发的场景下,如果选对了合适的锁,则会大大提高系统的性能,否则性能会降低。 所以,知道各种锁的开销,以及应用场景是很有必要的。 接下来,就谈一谈常见的这几种锁: 正文 多线程访问共享资源的时候,避免不了资源竞争而导致数据错乱的问题,所以我们通常为了解决这一问题 阅读全文
摘要:
一.分库分表原因 前文介绍MySQL主从模式,将读写分离以提高性能。 主从模式对于写少读多的场景确实非常大的优势,但是总会写操作达到瓶颈的时候,导致性能提不上去。 总的来说就是数据库出现性能瓶颈,对外表现有几个方面: 大量请求阻塞: 在高并发场景下,大量请求都需要操作数据库,导致连接数不够了,请求处 阅读全文
摘要:
这篇文章我想和你聊一聊,关于 Redis 分布式锁的「安全性」问题。 例如下面这些问题,你能清晰地回答上来吗? 基于 Redis 如何实现一个分布式锁? Redis 分布式锁真的安全吗? Redis 的 Redlock 有什么问题?一定安全吗? 业界争论 Redlock,到底在争论什么?哪种观点是对 阅读全文
摘要:
我们天天都在使用 Redis 内置的命令行工具 redis-cli,久而久之以为它就是一个简单的交互式 Redis 数据结构手工操作程序,但是它背后强大的功能绝大多数同学可能闻所未闻。本节我们一起来挖掘这些鲜为人知的有趣用法。 目录: 执行单条命令批量执行命令set 多行字符串重复执行指令导出 cs 阅读全文
摘要:
一、分布式锁 分布式锁,是一种思想,它的实现方式有很多。比如,我们将沙滩当做分布式锁的组件,那么它看起来应该是这样的: 加锁 在沙滩上踩一脚,留下自己的脚印,就对应了加锁操作。其他进程或者线程,看到沙滩上已经有脚印,证明锁已被别人持有,则等待。 解锁 把脚印从沙滩上抹去,就是解锁的过程。 锁超时 为 阅读全文