Redis
Thxxxxxx
然鹅我不想简介自己
展开
-
缓存穿透和缓存雪崩
缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。 解决办法:布隆过滤器 缓存雪崩 如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数据库上,造成了缓存雪崩。 解决办法: 1.加锁排队 在缓存失效后,通过加锁或者队列来控制读数据库写缓存...转载 2019-07-17 10:47:50 · 114 阅读 · 0 评论 -
Redis单线程执行流程
为什么Redis单线程模型效率这么高? 1.基于非阻塞IO的多路复用 2.基于内存操作 3.单线程避免了线程之间的上下文切换转载 2019-07-17 10:58:26 · 679 阅读 · 0 评论 -
Redis过期策略
定期删除+惰性删除+内存淘汰机制 定期删除,指的是redis默认是每隔100ms就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除。假设redis里放了10万个key,都设置了过期时间,你每隔几百毫秒,就检查10万个key,那redis基本上就死了,cpu负载会很高的,消耗在你的检查过期key上了。注意,这里可不是每隔100ms就遍历所有的设置过期时间的key,那样就是一场性能...转载 2019-07-17 11:06:19 · 105 阅读 · 0 评论 -
全量复制 增量复制 异步复制
全量复制 master执行bgsave,在本地生成一份rdb快照文件 master node将rdb快照文件发送给salve node,如果rdb复制时间超过60秒(repl-timeout),那么slave node就会认为复制失败,可以适当调节大这个参数 对于千兆网卡的机器,一般每秒传输100MB,6G文件,很可能超过60s master node在生成rdb时,会将所有新的写命令缓存...转载 2019-07-17 20:32:32 · 1277 阅读 · 0 评论 -
Redis底层数据结构实现
list: ziplist linkedlist map: ziplist hashtable set : inset hashtable zset: ziplist skiplist原创 2019-08-03 14:44:17 · 115 阅读 · 0 评论