gpt4 book ai didi

redis - 将 Redis 过期添加到整个命名空间键?

转载 作者:IT王子 更新时间:2023-10-29 06:15:06 25 4
gpt4 key购买 nike

假设我有一个用于 user + id命名空间键:

  • 最后一条消息
  • isNice 属性

所以 - 它是这样的:

>lpush user:111:lastMessages a
>lpush user:111:lastMessages b
>lpush user:111:lastMessages c

好的

让我们添加 isNice 属性:

>set user:111:isNice 1

所以:让我们看看 111 的所有键:

> keys user:111*

结果:

1) "user:111:isNice"
2) "user:111:lastMessages"

好的,但是

我要expire整个命名空间条目! (因此,当超时时 - 所有 键应该立即运行。我不想开始管理每个命名空间键和剩余时间,因为并非所有 Prop 都同时添加 - 但我希望所有 Prop 都同时死去……)

问题:

这是否意味着我必须为每个命名空间键条目设置过期时间?

如果不是,正确的做法是什么?

最佳答案

是的,按照您的设置方式,这些都是单独的键。您可以将命名空间视为您与所有将访问 Redis 存储的人的理解

Okay guys, here's the deal. We're all going to use keys that look like this:

user:{user_id}:lastMessages

That way, we all understand where to look to get user number 325's last messages.

但实际上,user:111:lastMessagesuser:111:isNice 之间没有任何共享。

修复

执行您所描述的操作的一种方法是使用散列。您将创建一个哈希,其键为 user:111,然后添加字段 lastMessagesisNice

> hset user:111 lastMessages "you are my friend!"
> hset user:111 isNice true
> expire user:111 1000

或者,一次全部,

> hmset user:111 lastMessages "you are my friend!" isNice true
> expire user:111 1000

这是一个page describing redis' data types .向下滚动到显示“哈希”的位置以获取更多信息。

编辑

啊,我没注意到你用的是列表。

如果您没有太多消息(比如不到 20 条),您可以将它们序列化为 JSON 并将它们存储为一个字符串。但这不是一个很好的解决方案。

最简洁的方法可能就是设置两个过期时间。

关于redis - 将 Redis 过期添加到整个命名空间键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23296549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com