数据库
文章平均质量分 72
houjibofa2050
读源码,要有技术深度,做一个把一招练一万遍的程序员。
展开
-
redis持久化(13问)
AOF阻塞主线程是因为随着数据量的增多,操作的频繁,AOF文件会越来越大,导致写磁盘越来越慢,故redis使用AOF的重写机制解决AOF文件过大的问题,AOF的重写机制是redis对AOF文件的压缩和优化,将对一个key的多条命令合并为一条命令和命令优化,比如将多个set命令合并为一个mset命令。在较短的时间进行一次redis进行一次RDB的持久化,可以减少数据的丢失,但是rdb的次数不是越短越好,频繁进行rdb,有2方面的影响。redis的持久化是为了解决redis 宕机后,数据的恢复问题。原创 2023-04-08 23:32:15 · 542 阅读 · 0 评论 -
mysql中mvcc实现机制和原理
mvcc全称是多版本并发控制,是数据库管理过程中的一种并发控制方式。数据库库中的并发控制一般是加锁。线程在操作共享资源时,需要加锁解决并发访问控制。锁又分为乐观锁和悲观锁。悲观锁:一上来,认为数据库会发生并发冲突,先锁住数据,不允许其他事物操作,直到本事务提交为止。乐观锁:在不锁定的情况下,更新数据,如果发现版本不一致,不更新数据,通过增加版本号比对来实现,还有cas等方式。mvcc本质是一种乐观锁的实现方式。原创 2023-02-12 16:22:22 · 523 阅读 · 0 评论 -
redis 高性能(19问)
1.redis的集群模式是什么?redis的集群模式是主从模式,采用1主多从 比如从节点是3,主节点负责读和写,从节点负责读,主节点负责把最新的数据同步到从节点。2.redis的主从模式,主库挂了怎么办?2.1 怎么判断主库挂了哨兵模式,哨兵是一个进程,哨兵通过ping 命令检测与主库连接,如果超时,就代表主库挂了。哨兵是一个集群,有多个哨兵组成。2.2 如果主库挂了,怎么进行选择主?按照一定的筛选条件和打分策略。筛选策略:不可用的和网络连接不太好,经常掉线的从节点去掉。..原创 2021-08-12 15:18:46 · 243 阅读 · 0 评论 -
分布式锁及其实现
redis 分布式锁,一般使用开源的redisson1.客户端1的加锁第一个if 判断 判断键key是否存在1判断 key是否存在 exists key == 0 如果等于0 是 key 不存在2.如果key 不存在,设置hset key argv2 13.设置key的过期时间 pexpire key argv1第二个if判断 判断锁是否是可重入1.判断key argv2是否存在,hexist key argv2 ==1 如果等于1 是可重入锁2. 如果是可重入锁,对 .原创 2020-06-19 14:59:53 · 483 阅读 · 0 评论 -
redis 缓存问题常见面试题
redis 内存级别的数据库 使用本质,是为了减少访问mysqlredis 缓存雪崩 重量级别的大量的key 在同一时间失效,导致redis 查询失效,大量的请求打到mysql上。导致mysql 崩溃。或者redis 服务挂掉,导致大量的请求,同时打到rmysql 上,导致数据库挂掉解决方案:1.key 在同一时间失效的情况,可以在key失效时间,加一个随机值,或者不设置时间的有效期,设置热点数据永远有效,更新首页数据时,同步更新缓存2.redis 挂掉,可以使用 red..原创 2020-05-30 20:53:10 · 327 阅读 · 0 评论 -
myslq 5.7 开启binlog
https://blog.csdn.net/zhengbin9/article/details/82745652show VARIABLES like 'log_%';1.找到my.ini文件win7 下my.ini的路径:C:\ProgramData\MySQL\MySQL Server 5.7\my.ini2.增加配置server_id=1918log_bin = ...原创 2019-12-09 09:32:37 · 197 阅读 · 0 评论 -
mysql索引
什么是索引:索引是一种排好序的快速查找的数据结构,能够帮助数据库获得高效数据的数据结构.索引的优势:提高数据库检索的效率,降低磁盘的io,通过索引列队数据排序,降低数据库排序的成本,降低cpu的消耗.索引的劣势:索引本身本身很大,不是保存在内存,而是以索引文件的形式保存在磁盘上.索引可以提高数据的查询速度,但是降低数据更新表的速度.尤其是增删改操作.更新表是不仅数据库增加数据,...原创 2019-02-14 09:54:14 · 93 阅读 · 0 评论 -
mysql总结
mysql 的三大块 索引,存储引擎,事务1.索引是一种数据结构2.mysql 底层使用的数据结构是b+ 树不使用别的数据结构的原因:二叉树,有序节点,会退化成链表,时间复杂度太高,性能太低红黑树,是一种平衡的二叉树,解决二叉树退化为链表的问题,有左旋,右旋的操作b-树 不利于范围查找。b+树mysql 的执行计划 explainmysql 的存储引擎: ...原创 2020-04-06 11:54:48 · 168 阅读 · 0 评论 -
binlog、redo log 、undo log区别与联系
redo log : 用于记录事务变化的日志,记录变化后的值,不管事务是否提交都会记录下来。 innoDB 存储引擎级别的日志,redo log 在数据库掉电的时候会派上用场。undo log:用于记录事务开始前的状态,用于事务失败时的回滚操作。binlog: 是mysql service服务级别的日志 可以作为恢复数据使用,主从复制搭建参考:https://blog.csdn....原创 2020-03-26 14:11:35 · 377 阅读 · 0 评论 -
redis 批量导入数据
redis 批量导入数据 @Test public void importEs29() throws Exception { List<Dict> list=new ArrayList<>(); list.add(new Dict().setCustomerId("1").setTagIdList("hello world"))...原创 2019-11-01 19:47:57 · 750 阅读 · 0 评论 -
数据库的事务
1.数据库事务的基本特性ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Duration)原子性:事务中的所有操作要么全部成功要么全部失败.一致性:数据库的完整性和一致性. A给B 转账,A中扣了钱,B中加了钱.持久性:事务一旦提交,数据被完整的保存.隔离性:并发的事务是相互隔离的. 2.隔离级别读未提...原创 2019-02-27 10:44:14 · 132 阅读 · 0 评论