Redis内存满了怎么办(新年快乐)
Redis内存满了怎么办(新年快乐)
入我相思门,知我相思苦。
长相思兮长相忆,短相思兮无穷极。
一、配置文件
Redis长期使用或者不设置过期时间,导致内存爆满或不足,可以到Redis的配置文件redis.conf 文件中,配置参数 maxmemory 的大小。一般的项目maxmemory设置为3~5G就够用了。

二、命令
通过命令修改,Redis支持运行时通过命令动态修改内存大小。
1 //设置Redis最大占用内存大小为100M
2 127.0.0.1:6379> config set maxmemory 100mb
3 //获取设置的Redis能使用的最大内存大小
4 127.0.0.1:6379> config get maxmemory

三、修改Redis淘汰策略
Redis提供了6种的淘汰策略:
- noeviction(默认策略):若是内存的大小达到阀值的时候,所有申请内存的指令都会报错;
- allkeys-lru:所有key都是使用LRU算法进行淘汰;
- volatile-lru:所有设置了过期时间的key使用LRU算法进行淘汰;
- allkeys-random:所有的key使用随机淘汰的方式进行淘汰;
- volatile-random:所有设置了过期时间的key使用随机淘汰的方式进行淘汰;
- volatile-ttl:所有设置了过期时间的key根据过期时间进行淘汰,越早过期就越快被淘汰。
部分策略使用场景:
- 若在Redis中的数据有一部分是热点数据,而剩下的数据是冷门数据,或者我们不太清楚我们应用的缓存访问分布状况,这时可以使用allkeys-lru。
- 若所有的数据访问的频率大概一样,就可以使用allkeys-random的淘汰策略。
Redis的淘汰策略也可以在redis.conf 配置文件中配置:

同时,Redis淘汰策略也可以通过命令的方式进行配置:
1 // 获取maxmemory-policy配置
2 127.0.0.1:6379> config get maxmemory-policy
3 // 设置maxmemory-policy配置为allkeys-lru
4 127.0.0.1:6379> config set maxmemory-policy allkeys-lru

入我相思门,知我相思苦。
长相思兮长相忆,短相思兮无穷极。
Redis内存满了怎么办(新年快乐)的更多相关文章
- redis内存满了怎么办?
redis最为缓存数据库,一般用于存储缓存数据,用于缓解数据库压力,但是缓存太多,内存满了怎么办呢.一般有以下几种方法 一.增加内存 redis存储于内存中,数据太多,占用太多内存,那么增加内存就是最 ...
- Redis 内存满了怎么办?这样设置才正确!
上回在<Redis 数据过期了会被立马删除么?>说到如果过期的数据太多,定时删除无法删除完全(每次删除完过期的 key 还是超过 25%),同时这些 key 再也不会被客户端请求,就无法走 ...
- Redis内存满了的几种解决方法(内存淘汰策略与Redis集群)
1,增加内存: 2,使用内存淘汰策略. 3,Redis集群. 重点介绍下23: 第2点: 我们知道,redis设置配置文件的maxmemory参数,可以控制其最大可用内存大小(字节). 那么当所需内存 ...
- Redis 内存满了怎么办……
我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小. 1.通过配置文件配置 通过在Redis安装目录 ...
- Redis 内存满了怎么办? Redis的内存淘汰策略
https://juejin.im/post/5d674ac2e51d4557ca7fdd70 Redis占用内存大小 我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限, ...
- LRU工程实现源码(一):Redis 内存淘汰策略
目录 内存淘汰是什么?什么时候内存淘汰 内存淘汰策略 Redis中的LRU淘汰算法 源码剖析 第一步:什么时候开始淘汰key 配置读取 检查时机 getMaxmemoryState 第二步:淘汰哪些k ...
- Redis内存使用优化与存储
抄自http://www.infoq.com/cn/articles/tq-redis-memory-usage-optimization-storage 本文将对Redis的常见数据类型的使用场景以 ...
- Redis内存存储结构分析
1 Redis 内存存储结构 本文是基于 Redis-v2.2.4 版本进行分析. 1.1 Redis 内存存储总体结构 Redis 是支持多key-value数据库(表)的,并用 RedisDb 来 ...
- 为什么Redis内存不宜过大
redis这个内存数据库,它的高性能.稳定性都是不用怀疑的,但我们塞进redis的数据过多,内存过大,那如果出问题,那它可能会带给我们的就是灾难性. 作者:程超来源:网络|2016-05-23 09: ...
随机推荐
- 【LeetCode】427. Construct Quad Tree 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【LeetCode】416. Partition Equal Subset Sum 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 DFS 动态规划 日期 题目地址:https://l ...
- The Longest Straight(FZUoj2216)
Problem 2216 The Longest Straight Accept: 82 Submit: 203Time Limit: 1000 mSec Memory Limit : ...
- Certified Adversarial Robustness via Randomized Smoothing
目录 概 主要内容 定理1 代码 Cohen J., Rosenfeld E., Kolter J. Certified Adversarial Robustness via Randomized S ...
- linux - 运维知识
使用nmap检测服务器端口安全性 https://blog.csdn.net/jayjaydream/article/details/108555250
- 部署Kubernetes Cluster
中文学习网站:https://www.kubernetes.org.cn/doc-16 部署docker服务 所有节点部署docker服务 curl -sSL https://get.daocloud ...
- SpringBootAdmin-使用踩坑
一.版本选择 目前项目中使用的springcloud版本为 Hoxton.SR3,使用的spring-cloud-alibaba版本为2.2.1.RELEASE, 使用的springboot版本为2. ...
- DB2给表批量赋权
使用DB2的for循环语句给表批量赋权,同理,稍加修改可作为其他批量操作. 值得注意的是: grant语句无法直接执行,需要使用execute immediate才能执行. 授权操作表的所有权限:gr ...
- 初识python: 面向对象是个啥?
编程范式:编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 ,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多 ...
- 自定义djangorestframework-simplejwt的验证表
django restframework-simplejwt默认是通过调用django的get_user_model方法来得到验证表的表名,然后再通过查询id来验证是否有这个用户. 当需要自定义用户表 ...