当要过期的key没有经过惰性删除删除掉,或者长期保存的key大量积压在内存,导致redis内存耗尽,该怎么办
redis为提供了内存淘汰机制,若redis占用过多的内存,此redis本身会进行内存淘汰。删除一些key给内存腾地儿。
- noeviction:当内存不足以容纳新的key插入时,就会插入报错。
- allkeys-lru:当内存不足时,在键空间中,移除最近最少使用的key(常用)
- al
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
- volatile-lru:删除设置了过期时间且最少使用到的key
- volatile-ttl:删除设置了过期时间中快要过期的key
单机redis并发量QPS最多也就几万吧,简单的k v形式,读写分离,缓存写相对于读会少很多。 主从复制 - maste slave可水平扩容 请求量增加,增加slave即可。
注意:
- master必须要有持久化机制,若没有,宕机重启时,就会把其他的salve也置空。
- master及时备份,如果本地的数据丢失,就可以把备份的rdb去恢复master中的数据,重启master就会重新加载备份的数据。
redis持久化方式有哪几种?各有那些优缺点
- AOF(存储的是指令):以日志的形式记录每个写操作。
缓存雪崩
避免同一时间大量的key同时过期,分布设置key的过期时间。
若redis宕机,避免雪崩如下
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。