-
Git 撤销 commit 和回退到指定 commit
git reset 撤销commit针对的是本地已提交,而还没有push到远程。 HEAD^ 和 HEAD~ 撤销前一次提交 注意HEAD^的双引号,不加双引号
2021-03-27, Views: 9514 , Topics: Git
-
Git 修改 commit 留言
amend 只能修改最新一次的commit,本地无commit则修改线上的最新一次commit的留言。 留言内容使用双引号括起来。 git commit --a
2021-03-26, Views: 3647 , Topics: Git
-
Java FutureTask 源码解析
说明 本文基于Java8。 构造方法 传入Callable对象,使用成员变量接收,并将状态改为NEW。 private Callable<V> ca
-
尾部延迟是什么?如何避免尾部延迟?
概念 有1%的请求耗时高于99%的请求耗时,影响用户体验,甚至拖垮服务。 可能原因 磁盘空间不足/老化 负载高/过载 频繁垃圾回收 请求数据库或第三方资源超时
-
惊群效应是什么?如何避免惊群效应?
线程惊群 惊群效应(thundering herd)是指多进程(多线程)在同时阻塞等待同一个事件的时候(休眠状态),如果等待的这个事件发生,那么他就会唤醒等待的
-
Java 使用 FutureTask 解决缓存击穿(缓存踩踏)问题
缓存击穿 也叫缓存踩踏。 当缓存中无数据时,所有请求都在数据库访问,到时候数据库压力倍增。 自旋锁方案存在的问题 前一篇文章使用了自旋锁来防止缓存击穿问题,但因
-
缓存穿透、缓存雪崩、缓存击穿、缓存污染
缓存穿透 场景描述 缓存和数据库中都没有的数据,用户不断发起请求。如发起id=-1等不合理数据,导致数据库压力过大。 解决方法 增加传参校验,如Validat
-
Redis 使用 hotkeys 查看热点数据
前置要求 Redis 4.0.3中新增查看热点数据命令行,使用热点数据必须将内存策略修改为LFU算法。 查看内存策略 config get maxmemory-
-
为什么 Redis 的 hash slot 设置为 16384
问题 Redis使用CRC16算法(CRC16(key) % 16384)可以产生2^16-1=65535个值,但为什么哈希槽设置成了16384? 原因 htt
-
Redis 使用 hash tag 插入到同一个哈希槽
hash tag 使用{}大括号,指定key只计算大括号内字符串的哈希,从而将不同key名词的键插入到同一个哈希槽。 查看 key 对应的 hash slot
-
Redis 执行 Lua 脚本抛出 StatusOutput does not support set(long) 异常
异常信息 Caused by: org.springframework.data.redis.RedisSystemException: Unknown red
2021-03-18, Views: 12731 , Topics: Redis Lua Spring Boot
-
MySQL 的四种事务隔离级别
事务的基本要素(ACID) 原子性(Atomicity) 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务
-
MySQL 备份工具 xtrabackup 安装和使用
工具版本 xtrabackup2.4.21,主服务器、备服务器都需要安装。 xtrabackup2适用于MySQL5.7及以下,xtrabackup8适用于My
2021-03-16, Views: 2940 , Topics: MySQL
-
MySQL Can't open the mysql.plugin table. Please run mysql_upgrade to create it
解决办法 第一步 清空datadir指定的目录。 第二步 初始化MySQL mysqld --initialize 在指定的日志文件里会有初始化后的root用户
2021-03-15, Views: 5281 , Topics: MySQL
-
MySQL ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
原因 未开启密码校验插件。 查看设置 查看变量中是否有密码校验。 SHOW VARIABLES LIKE 'validate_password%'; 查看插件中
2021-03-14, Views: 8770 , Topics: MySQL
-
MySQL Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root
说明 MySQL不建议以root用户启动。 解决 方法一 root用户下启动时指定用户为mysql。 mysqld --user=mysql --daemoni
2021-03-13, Views: 7518 , Topics: MySQL
-
MySQL 还原备份非常慢解决方法
现象 使用mysql -uroot -p < dump.sql或source命令导入十分耗时。 原因 可能是使用Navicat导出,可以打开导出文件看到,
-
MySQL 中的乐观锁和悲观锁
创建测试表 创建product表: CREATE TABLE `product` ( `id` int(11) NOT NULL, `name` var
-
MySQL 使用的是 BTree 还是 B+Tree
查看索引 查看表account的索引。 show index from account; 输出: mysql> show index from accou
-
MySQL 中的覆盖索引
索引覆盖 Extra字段显示Using index,索引处取得的数据即是要求的数据,则不会再回数据文件再查询,直接返回了。 explain select id