MLXY 2020-04-26
redis直接故障:解决方法redis集群部署redis cluster模式
对缓存数据设置了相同的时间,导致某段时间数据全部失效:使用allkey-lru算法
请求的数据一定是缓存中没有的,比如有些空值,选择布隆过滤器(布隆过滤器是一种概率型数据结构)
对空值进行缓存
先删除缓存,再更新数据库;始用原子破坏性
先更新数据库,再删除缓存;高并发场景
(1)RDB快照式存储【默认】
触发机制:手动save,期间redis不能处理其他命令,如果数据比较大,不建议执行。
bgsave触发:异步进行快照操作,常用操作!
自动触发:根据键值更新频率,设置不同时间自动处理
优点:文件紧凑,全量备份,适合灾难恢复,恢复速度快
缺点:即便是bgsave异步持久化,但是在开启子进程进行操作期间,会有一部分数据无法保存。
(2)AOF追加式存储
优点:数据保护性更好,文件不易损坏
缺点:文件比较大,占用一定的IO资源(每秒中追加保存一次)
(3)两个都启用,redis重启优先加载AOF文件
【redis主从】:
主要是备份,其次是高可用(主节点坏掉,需要手工切换), 我们操作主库,数据也会同步到从库。 如果主库机器坏了,从库可以上。就好比你 D盘的片丢了,但是你移动硬盘里边备份有。
【redis哨兵】:
兼并备份,高可用(不需要手动),保证特殊情况故障自动切换,哨兵盯着你的“redis主从集群”,如果主库死了,它会告诉你新的老大是谁。
【redis集群】:
兼并备份,高可用,高并发,因为多了一些兄弟帮忙一起扛。同时集群会导致数据的分散,整个redis集群会分成一堆数据槽,即不同的key会放到不不同的槽中
1)、存储方式 Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。 Redis有部份存在硬盘上,redis可以持久化其数据
2)、数据支持类型 memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型 ,提供list,set,zset,hash等数据结构的存储
3)、使用底层模型不同 它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。 Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
4). value 值大小不同:Redis 最大可以达到 512M;memcache 只有 1mb。
5)redis的速度比memcached快很多
6)Redis支持数据的备份,即master-slave模式的数据备份。*