本文整理自小d课堂笔记和java进阶仓库,如有雷同,大部分是人家写的
java进阶仓库:https://doocs.github.io/advanced-java/#/
背景
redis key过期策略
Redis如何淘汰过期的keys: set name xx 3600
定期删除:
惰性删除 :
问题
如果定期删除漏掉了很多过期 key,然后你也没及时去查,也就没走惰性删除,此时会怎么样?
如果大量过期 key 堆积在内存里,导致 redis 内存块耗尽了,就需要走内存淘汰机制
背景
config配置的时候 下划线_的key需要用中横线-
127.0.0.1:6379> config set maxmemory_policy volatile-lru
(error) ERR Unsupported CONFIG parameter: maxmemory_policy
127.0.0.1:6379> config set maxmemory-policy volatile-lru
OK
public class LRUCache<K, V> extends LinkedHashMap<K, V> {
private int capacity;
/**
* 传递进来最多能缓存多少数据
*
* @param capacity 缓存大小
*/
public LRUCache(int capacity) {
super(capacity, 0.75f, true);
this.capacity = capacity;
}
/**
* 如果map中的数据量大于设定的最大容量,返回true,再新加入对象时删除最老的数据
*
* @param eldest 最老的数据项
* @return true则移除最老的数据
*/
@Override
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
// 当 map中的数据量大于指定的缓存个数的时候,自动移除最老的数据
return size() > capacity;
}
}
Redis6.x持久化配置介绍和RDB讲解
rdb 在redis重启时会重新加载dump.rdb来恢复数据
AOF持久化介绍
配置实战
核心原理
提供了3种同步方式,在性能和安全性方面做出平衡
redis 重启时加载appendonly.aof
Redis提供了不同的持久性选项:
补充之前的配置
auto-aof-rewrite-min-size
AOF文件最小重写大小,只有当AOF文件大小大于该值时候才可能重写,6.x默认配置mb。
auto-aof-rewrite-percentage
当前AOF文件大小和最后一次重写后的大小之间的比率等于或者等于指定的增长百分比,如100代表当前AOF文件是上次重写的两倍时候才重写。
RDB的优缺点
AOF的优缺点
在线上我们到底该怎么做?
Redis4.0后开始的rewrite支持混合模式
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务