数据库
卡尔非得
这个作者很懒,什么都没留下…
展开
-
Redis缓存会出现的问题
Redis雪崩、Redis击穿、Redis穿透 Redis雪崩:大量缓存再同一时间出现了失效,导致了大量数据给DB(后台系统)造成很大的压力。解决方法:失效时间加个任意值。 Redis击穿:针对于单个key失效但是存在大量的并发访问的情况,而造成大量的请求砸到db。解决方法,将热点数据设置为永不过期,或者给这些key家锁。 Redis穿透:恶意查询redis中不存在的key,从而造成数据库的崩溃。解决方案:对这些key值做一个检验操作。 ...原创 2021-02-28 13:34:13 · 206 阅读 · 0 评论 -
Redis 高可用部分的主从复制和哨兵的基本原理
Redis 高可用部分的主从复制和哨兵的基本原理 主从复制原理: 1、从服务器于主服务器进行连接并发送snyc命令,要求进行数据的复制。 2、主服务器会开辟一片内存空间来接受在此期间的写命令。 3、然后主服务器会发送快照文件给从服务 4、从服务器将新的RDB文件替换旧的数据 5、主服务器再把缓冲区的写命令发送给从服务器,从服务器接受命令。实现了全量复制。 6、主服务器每次执行写命令的时候都会将这些命令发送给从服务器,从服务器负责接受。从而实现一个增量复制。 哨兵的原理: Redis服务中主服务器负责数据的写原创 2021-02-28 12:49:41 · 123 阅读 · 0 评论 -
Redis 缓存的淘汰策略
Redis 缓存的淘汰策略 Redis官方给的警告,当内存不足时,Redis会根据配置的缓存策略淘汰部分keys,以保证写入成功。当无淘汰策略时或没有找到适合淘汰的key时,Redis直接返回out of memory错误。 1、volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 2、volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰 3、volatile-random原创 2021-02-28 12:41:09 · 117 阅读 · 0 评论 -
redis持久化的两种方式:RDB和AOF
redis持久化的两种方式:RDB和AOF 目的 针对于内存数据丢失的情况,redis提供了两种数据持久化的机制。 RDB RDB:将redis的数据通过服务器快照的方式以二进制存储在dump.rdb文件中。原理:定时fork一个子线程去将内存数据进行快照存储写入到RDB文件中,然后替换旧的RDB文件。主线程处理指令请求。 优点:可以快速恢复数据。缺点:因为内存数据写入RDB文件中总是周期性的,如果未触发下一次存储服务的时候宕机,那么就会造成数据丢失。 AOF AOF:开启AOF之后,以一种日志的形式,re原创 2021-02-27 20:38:14 · 182 阅读 · 0 评论 -
索引
索引的本质是数据结构。 Mysql的默认存储引擎innodb支持B-tree(底层上是B+)索引。 索引分类: 普通索引:一个索引只有一列,一个表可以有很多个单列索引。 唯一索引:索引列里面的值是唯一的,可以为空。 主键索引:索引列的值为唯一,且不是空的。 组合索引:多列值组成的索引,用于组合搜索。 全文索引:Myisam运用的索引,效率比较低。 聚集索引:一种数据存储方式。B+树的索引方式。叶子节点存放所有的关键字数据信息,有一个指针指向最小关键字的信息,使得这些关键字串成一个有序的链表。 ...原创 2021-02-27 13:54:36 · 89 阅读 · 0 评论 -
事务的隔离级别
事务的隔离级别 1.读未提交 可以读取未提交事务的数据,会出现脏读。 2.读已提交 一个事务只能读到其他事务提交后的数据,但是会出现不可重复读。(重复读取一个数据的时候会出现数据不一致) 3.可重复读 事务读取数据开始的时候,就不能对数据进行修改,但是会出现幻读问题。(即插入的数据和修改的数据一样) 4.串行化 解决了所有问题,但并发程度最低。 ...原创 2021-01-29 15:02:53 · 68 阅读 · 0 评论