Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >红光过期,内存按规格泄漏?

红光过期,内存按规格泄漏?
EN

Stack Overflow用户
提问于 2015-04-10 08:32:21
回答 2查看 1.6K关注 0票数 0

Redis为我们提供了EXPIRETTL函数。根据文档TTL命令可用于区分不存在的密钥和过期的密钥:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> SET foo 3
OK
> GET foo
"3"
> EXPIRE foo 5
(integer) 1
> TTL foo
(integer) 3
> TTL foo
(integer) 2
> TTL foo
(integer) 1
> TTL foo
(integer) 0
> TTL foo
(integer) -2

根据到期规格,在访问过期对象时,或者通过定期随机选择过期密钥,都会从存储中删除过期对象:

具体来说,这就是Redis每秒做10次的事情: 从一组具有关联过期的密钥中测试20个随机密钥。 删除发现过期的所有密钥。 如果超过25个密钥已过期,请从步骤1重新开始。

但是-2 (或者允许生成它而不是-1)的信息呢?是永远保留还是有垃圾收集政策?

还请注意,如果我们为同一个键设置和删除一个新值,-2将如何存活:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> SET foo 3
OK
> ttl foo
(integer) -1
> del foo
(integer) 1
> ttl foo
(integer) -2

例如,假设我们有一个脚本,它使用递增的名称设置键,并使它们在1秒后过期。在漫不经心的很长一段时间后,我们是否会耗尽记忆?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-10 08:41:34

请参阅作为最近使用最少的缓存上的页面--您可以告诉Redis不要超过设定的内存数量,并选择几个键过期和清除策略中的一个。

一个微妙的问题是,并不是所有Redis中的数据类型都能很好地处理这个问题,但是带有ttl集的集合应该可以工作。还支持为您提供足够的日志记录,以跟踪在您优化这个日志时发生了什么、原因以及如何进行。

票数 1
EN

Stack Overflow用户

发布于 2015-04-10 11:30:38

但是-2 (或者允许生成它的信息,而不是-1)呢?是永远保留还是有垃圾收集政策?

-2表示密钥不在数据库中,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> ttl somekey
(integer) -2
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29566414

复制
相关文章
内存泄漏
这个笔记是记录一下,关于内存泄漏的知识,之前我们就知道了,如果要用堆必须要释放堆的内存,如果不释放会产生很多的内存垃圾和碎片,影响系统运行效率,甚至出错。
用户7272142
2023/10/11
2990
内存泄漏
leakCanary 内存泄漏
当jvm进行垃圾回收时,无论内存是否充足,如果该对象只有弱引用存在,那么该对象会被垃圾回收器回收,同时该引用会被加入到关联的ReferenceQueue。因此程序通过判断引用队列中是否已经包含指定的引用,来了解被引用的对象是否被GC回收(引用队列存在指定的弱引用,说明对象被回收)
花落花相惜
2021/12/15
1.5K0
JavaScript内存泄漏
内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
张炳
2019/08/02
1.4K0
JavaScript内存泄漏
java内存泄漏
一般来说,内存泄漏有两种情况,一种情况如在C/C++语言中的,在堆中分配的内存在没有将其释放掉的时候,就将其所有能访问这块内存的方式都删除掉(如,指针重新赋值)。这种情况就像,占着地儿,别人还没办法引用,又没释放空间,内存泄漏。
MickyInvQ
2020/09/27
1.5K0
NSURLSession内存泄漏
检查代码是否有leak的时候,发现NSURLSession存在leak,最后发现必须session请求完成后,立即释放,代码如下: - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error{ [session finishTasksAndInvalidate]; }
czjwarrior
2018/05/28
2.2K0
内存泄漏漫谈
对于C/C++来说,内存泄漏问题一直是个很让人头痛的问题,因为对于没有GC的语言,内存泄漏的概率要比有GC的语言大得多,同时,一旦发生问题,也严重的多,而且,内存泄漏的排查往往十分困难。对于内存泄漏,维基百科的定义是:在计算机科学中,内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。内存泄漏的原因通常情况下只能由程序源代码分析出来。如果一个程序存在内存泄
腾讯移动品质中心TMQ
2018/02/06
2.6K0
内存泄漏漫谈
Android 内存泄漏
内存泄漏(Memory Leak):是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
Yif
2019/12/26
1.9K0
jvm内存泄漏
Runtime.getRuntime().freeMemory()表示当前还有多少空闲内存
全栈程序员站长
2022/08/23
1.5K0
jvm内存泄漏
内存泄漏分析
在内存映像文件导出中详细的介绍了当应用程序出现内存泄露的时候自动导出内存映像文件。在实际的生产环境中主要是使用jamp通过命令行的模式来导出内存镜像文件,下面详细的阐述下这个过程。
无涯WuYa
2022/12/03
1.9K0
内存泄漏分析
golang 内存分析/内存泄漏
进入交互式模式之后,比较常用的有 top、list、traces、web 等命令。
ppxai
2020/09/23
9.2K0
python 内存泄漏
程序运行时都需要在内存中申请资源用于存放变量,python 在处理内存中的变量时会调用垃圾回收机制,会留心那些永远不会被引用的变量并及时回收变量,删除并释放相关资源。
为为为什么
2022/08/09
2.8K0
python 内存泄漏
内存溢出和内存泄漏
通俗的讲就是设备内存不够了。就好比我们的手机,运行内存是4G的,当我们运行了太多的程序时,在运行其他的软件时就会很卡或者提示xx运行停止。
兔云小新LM
2019/07/22
3.1K0
内存泄漏和内存溢出
b)创建匿名内部类的静态对象 c)未关闭资源 d)长时间存在的集合容器中创建生命周期短的对象
名字是乱打的
2022/05/13
3.3K0
内存溢出和内存泄漏
内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。 内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费
在水一方
2022/06/14
3K0
内存泄漏定位
编写java程序最为方便的地方就是我们不需要管理内存的分配和释放,一切由jvm来进行处理,当java对象不再被应用时,等到堆内存不够用时,jvm会进行垃圾回收,清除这些对象占用的堆内存空间,如果对象一直被应用,jvm无法对其进行回收,创建新的对象时,无法从Heap中获取足够的内存分配给对象,这时候就会导致内存溢出。
muntainyang
2020/09/28
1.7K0
内存泄漏定位
CMFCButton内存泄漏
VS10未打补丁的版本,CMFCButton绑定控件存在内存泄漏,查看MSDN手册
sofu456
2019/07/09
1.2K0
CMFCButton内存泄漏
剑指内存泄漏
指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,失去了对该段内存的控制,因而造成了内存的浪费。一般我们常说的内存泄漏是指堆内存的泄漏,堆内存使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,必须负责调用free或delete释放相应的内存。
audy
2019/02/13
1.3K0
剑指内存泄漏
JAVA NIO内存泄漏
前言 写NIO程序时,经常使用ByteBuffer来读取写入数据,那使用ByteBuffer.allocate()还是ByteBuffer.allocateDirect分配呢? allocate()分配的是jvm堆内存,属于GC管理范畴,需要堆内拷贝,速度较慢。 allocateDireact()直接分配堆外内存,属于OS范畴,没有GC管理,速度较快。 我们希望使用速度更快的方式,但是没有GC管理会产生OOM的问题。 好在OS内存在java中有个DirectByteBuffer与之对应,当GC发生时,这个类
春哥大魔王
2018/04/16
1.8K0
Etcd watch内存泄漏
通过监控看到弹性云用户平台后端程序kube-odin的内存使用量在稳定增加,每次上线完又会恢复,可以判断出kube-odin中存在内存泄漏问题
李鹤
2023/03/28
1.3K0
Etcd watch内存泄漏
浅谈Golang内存泄漏
内存泄漏并不是指物理上的内存消失,而是在写程序的过程中,由于程序的设计不合理导致对之前使用的内存失去控制,无法再利用这块内存区域;短期内的内存泄漏可能看不出什么影响,但是当时间长了之后,日积月累,浪费的内存越来越多,导致可用的内存空间减少,轻则影响程序性能,严重可导致正在运行的程序突然崩溃。
素履coder
2022/10/05
2.6K0
浅谈Golang内存泄漏

相似问题

量角器规格泄漏

22

按值调用函数内存泄漏

20

按CGAffineTranform或按视图的cocoa内存泄漏

13

按下按钮时的内存泄漏

10

按字典列出的iOS内存泄漏

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文