Redis / Cache
32 篇笔记
- 3.2 Redis并发竞争问题historical
1. 并发竞争问题是什么 假设price初始值为10,有两个连接需要对其执行+10操作,正确的结果应该是30 1. 连接1读取price为10 2. 连接2读取price为10 3. 连接1对price+10为20,写回 4. 连接2对price+10为20,写回 如上,最后的结果为20而不是30,
- 3.3 Redis慢查询historical
1. Redis执行命令流程 - client发送命令给服务器 - 服务器将命令排队 - 服务器执行命令 - 慢查询统计的就是这个时间 - 服务器返回结果 2. 使用 2.1. 记录慢查询语句 2.2. 慢查询命令 2.3. 分析慢查询原因 - Redis bigkey.md 3. 实现 存储在内存
- 3.4 Redis阻塞historical
1. 什么是Redis阻塞 - redis需要很长时间才能响应客户端请求 2. 为什么会发生阻塞 本质上是因为redis是单线程架构,命令执行在这个线程中完成 3. 如何发现阻塞 - 业务方的redis客户端连接redis服务器超时,触发监控告警 4. 原因分析 4.1. 内在 4.1.1. 使用了
- 3.5 Redis bigkeyhistorical
1. 什么是big key - 针对value来说 - string类型:一般认为超过10KB - 其他类型:元素个数过多 2. big key的危害 - 超时阻塞:操作big key比较耗时 - 内存空间分配不均匀:比如redis cluster模式之下 - 大key读写瓶颈在CPU还是带宽?带宽
- 3.6 Redis hotkeyhistorical
1. 什么是Redis hot key 某个key读写QPS超过了Redis单机QPS瓶颈,并且由于是一个key,无法用Redis Cluster分担压力 2. 如何发现Redis hot key - 业务服务metrics打点统计上报 - Redis proxy收集信息 每秒访问超过1W次的算作热
- 4.1 Redis Clusterhistorical
1. 为什么需要redis cluster - 分布式系统分区.md 2. 什么是redis cluster - Redis的分布式方案,解决了主从复制写能力受到单机限制的问题和无法自动进行故障转移的问题 3. 如何搭建redis cluster 集群中可以有多个master,每个master可以由
- 4.2 Redis Sentinelhistorical
1. 为什么需要Redis Sentinel - 主从复制无法自动进行故障转移 2. 什么是Redis Sentinel - Redis的高可用机制,解决了主从复制无法自动进行故障转移的问题 2.1. Redis Sentinel的功能 - Monitoring:持续地检查master或者repli
- 4.3 Redis Replicationhistorical
1. 为什么需要Redis Replication - 分布式系统复制.md 2. 什么是Redis Replication - 把数据复制多个副本部署到其他机器 - 复制是Redis高可用(Redis Cluster/Redis Sentinel)的基础 2.1. Replication拓扑结构
- 5.1 Redis key过期策略historical
1. Redis key过期什么 就是key设置了过期时间后什么时候会被真正删除 过期的精度是0-1ms 2. Redis key过期命令 - expire可以设置超时时间 - 如果key存在那么reply为1,如果key不存在那么返回0 - persist可以清除超时,将key变成永久的 - re
- 5.2 Redis内存管理historical
1. 内存消耗划分 1.1. used memory - used memory=自身内存+对象内存+缓冲内存 1.1.1. 自身内存 redis进程,一般可以忽略 1.1.2. 对象内存 - sizeof(key)+sizeof(value) ,占用最大 - 解决 - 使用序列化缩减对象大小 -