redisredis知识点总结
Posted Jack小强
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redisredis知识点总结相关的知识,希望对你有一定的参考价值。
redis
- redis支持事务、持久化、LUA脚本、LRU驱动时间、多体集群
- redis与本地缓存(map)的区别?
- 本地缓存:主要特点轻量以及快速,生命周期随着JVM的销毁而结束,多实例各自保存一份缓存,不具有一致性
- redis:分布式缓存,具有一致性
- redis与memcached区别?
- 支持的数据类型
- redis支持更丰富的(支持更复杂的应用场景)k/v、list、set、zset、hash等
- memcache仅支持简单数据类型string
- 持久化
- redis支持持久化,重启可恢复数据
- memcache仅能保存在内存中
- 集群支持
- redis原生支持cluster
- memcache需要靠客户端分片写入数据实现集群
- 多线程
- redis 单线程多路由IO复用模型
- memcache 多线程非阻塞IO复用模型
- 对比图
- 支持的数据类型
- 常见数据结构分析
- Hash 存储对象
key=JavaUser293847 value= “id”: 1, “name”: “SnailClimb”, “age”: 22, “l ocation”: “Wuhan, Hubei”
- List 存储链表 支持反向查找、遍历、分页
- Set 对比List可以自动排序,去重,比List多了一个判断某元素是否存在的接口
- Sorted Set 带权重的排序
- 过期时间
- 过期删除机制
- 定期删除:每隔100s 随机抽取一些过期时间的key进行删除
- 惰性删除:对被定期删除遗漏的Key调用时,进行删除操作
- 内存淘汰机制:某一个key如果永不调用,就会错过上两次删除,一直存在在内存中,此时会启用内存淘汰机制保持内存中都是热点数据
- volatile-lru :挑选最近最少使用的数据淘汰
- volatile-ttl :挑选将要过期的数据淘汰
- volatile-random :在已设置过期时间的数据集中任意选择数据淘汰
- allkeys-lru :从数据集(server.db[i].dict)中任意选择数据淘汰
- no-enviction :禁止驱逐数据,也就是说当内存不足以容纳新写入数据时,新写入操作会报错
- 过期删除机制
- 持久化机制
- 快照(RDB):redis创建某个时间点的副本
- save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,Redis就会自动触发BGSAVE命令创建快照
- save 300 10 #在300秒(5分钟)之后,如果至少有10个key发生变化,Redis就会自动触发BGSAVE命令创建快照
- save 60 10000 #在60秒(1分钟)之后,如果至少有10000个key发生变化,Redis就会自动触发BGSAVE命令创建快照
- 追加文件(AOF): 每次更新会把最新备份写入 appendonly.aof 文件中
- 开启方式添加参数 appendonly yes
- appendfsync always #每次有数据修改发生时都会写入AOF文件,这样会严重降低Redis的速度
- appendfsync everysec #每秒钟同步一次,显示地将多个写命令同步到硬盘
- appendfsync no #让操作系统决定何时进行同步
- AOF文件支持重写成为一个和原来保存数据一样,体积更小的文件
- 快照(RDB):redis创建某个时间点的副本
- 缓存雪崩和穿透解决方案
- 缓存雪崩 : 缓存崩盘
- 事前:尽量保证整个 redis 集群的高可用性,发现机器宕机尽快补上。选择合适的内存淘汰策略。
- 事中:本地ehcache缓存 + hystrix限流&降级,避免mysql崩掉
- 事后:利用 redis 持久化机制保存的数据尽快恢复缓存
- 图解
- 缓存穿透 :一般是黑客故意去请求缓存中不存在的数据,导致所有的请求都落到数据库上,造成数据库短时间内承受大量请求而崩掉。两种办法:
- 1.将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉
- 2.如果一个查询返回的数据为空(不管是数据不存在,还是系统故障),我们仍然把这个空结果进行缓存但它的过期时间会很短,最长不超过五分钟
- 缓存雪崩 : 缓存崩盘
- 如何解决 Redis 的并发竞争 Key 问题
- 分布式锁(zookeeper 和 redis 都可以实现分布式锁)
以上是关于redisredis知识点总结的主要内容,如果未能解决你的问题,请参考以下文章