随笔分类 - Redis
摘要:一. Redis的单线程 说明:Redis单线程主要是指【网络IO】和【键值对读写】操作是由一个线程来完成的 原因:避免多线程的并发控制问题及线程间的上下文切换 QPS:10w级别QPS处理能力,因为大部分操作都在内存上,且采用了高效的数据结构 基于多路复用的Redis高性能IO模型 二. 可能影响
阅读全文
摘要:一. 说明 二. 数据结构 1. String 二进制安全(能保存任意格式的数据) 2. List 链表结构 快速的列头、列尾操作,时间复杂度O(1) 列表查询时间复杂度O(N),考虑用Sorted List替代 应用:朋友圈点赞列表 lpush id lrange 0 -1 ltrim 3. Ha
阅读全文
摘要:一. 本文对Redis中[缓存穿透]、[缓存击穿]、[缓存雪崩]三种现象产生原因、解决方法进行说明 二. 缓存穿透 1. 原因 缓存不存在或已过期,请求直接打到数据库层 2. 解决方法 缓存永不失效 1. 通过设置无过期时间的缓存 2. 定时任务或异步线程定期更新缓存 3. 发现缓存即将过期时延长过
阅读全文
摘要:一、主从同步可能遇到的坑 1、主从数据不一致 2、从库读取到过期数据 二、问题1:主从数据不一致 原因:主从库间命令复制是异步进行的 主库收到写命令后,会发送给从库。 但是,主库并不会等到从库实际执行完命令后,再把结果返回给客户端,而是主库自己在本地执行完命令后,就向客户端返回结果了。 如果从库还没
阅读全文
摘要:需求:两个客户端同时对[key1]执行自增操作,不会相互影响 操作:下面两个客户端并发操作会导致[key1]输出结果与预期不一致 [客户端一]读取[key1],值为[1] [客户端二]读取[key1],值为[1] [客户端一]将[key1]自增1,值为[2] [客户端二]将[key1]自增1,值为[
阅读全文