当前位置: 首页 > 面试题库 >

Redis“无”或“空列表或集合”

麻书
2023-03-14
问题内容

我目前正在使用“设置”结构使用Redis。

我想知道是否有可能自动清理空的“ set”吗?

否则找到一个cron /进程来定期清理空的“ set”

更新:

更笼统的问题是,“(nil)”和“(空列表或集合)”之间存在差异(内存使用情况)

例:

sadd x 1
srem x
smembers x
(empty list or set)

要么

sadd x 1
del x
smembers x
(nil)

问题答案:

这已经是自动的。如果集合为空,则将其从名称空间中删除。

> flushall
OK
> sadd x 1 2 3
(integer) 3
> keys *
1) "x"
> srem x 1 2 3
(integer) 3
> keys *
(empty list or set)

您不必执行任何特定操作即可从此行为中受益。

要回答第二个问题,(nil)或(空列表或集合)仅是对客户端程序的解释。在这两种情况下,在Redis服务器中,该条目已被物理删除,并且相关的内存已释放。



 类似资料:
  • 问题内容: 是否有人在Redis中实现了任何形式的有上限的数据结构?我正在构建类似新闻提要的东西。提要将非常频繁地被操纵和读取,并且将其保存在Redis的分类集中对于我的用例来说是便宜又完美的。唯一的问题是,每个提要仅需要n个项,并且我担心内存溢出,因此我想确保每个提要都不会超过n个项。用Lua在Redis中创建一个有上限的排序集合似乎很简单: update_feed.lua看起来像(未经测试):

  • Java 8有一个函数< code > CompletableFuture . allof(CompletableFuture 但是,我几乎总是不处理,而是有一个

  • 我正在使用skLearning TfidfVectorzer进行文本分类。 我知道这个矢量器需要原始文本作为输入,但使用列表是可行的(请参见input1)。 但是,如果我想使用多个列表(或集合),我会得到以下属性错误。 有人知道如何解决这个问题吗?提前谢谢! Traceback(最近一次调用):File",第1行,在File"/库/框架/Python.framework/Versions/3.5/

  • 我正在使用spring MVC&hibernate作为我的WebApp。现在的问题是,如果返回一个对象,我可以生成json,但不能生成列表。我错过什么了吗? (1)如果我访问此: 结果好的,我将得到这个json返回: (2)但如果我访问这个: 我会得到这个例外。 实体表已配置Jackson: 有什么我错过的吗?还是图书馆互相起了冲突?多谢了。

  • 问题内容: 我有一个在列表中存储一些数据的对象。该实现可能会在以后更改,并且我不想向最终用户公开内部实现。但是,用户必须具有修改和访问此数据集合的能力。目前我有这样的事情: 这是否意味着我已允许内部实施细节泄漏出去?我应该这样做吗? 问题答案: 这仅取决于您是否希望您的用户能够索引数据?如果是,请使用列表。两者都是接口,因此您不会泄漏实现细节,实际上,您只需要确定所需的最低功能即可。

  • 问题内容: 我通过以下方式使用Redis缓存扇出新闻提要: 每个供稿活动都是键/值,例如activity:id,其中值是数据的JSON字符串。 当前每个新闻提要都是一个列表,键是feed:user:user_id,该列表包含相关活动的键。 检索我使用的新闻提要,例如:’sort feed:user:user_id by nosort get * limit 0 40’ 我正在考虑将提要更改为排序集