我使用redis来存储用户信息。
我在“用户”键下设置了许多用途的信息,如下所示:
"hset user userid1234 {...}".
如何使用户中的键“ userid1234”在几秒钟后失效?
有一些像“过期”的命令,只能设置用户的超时时间,但我不希望它全部过期。
有什么解决办法吗?
不,这是不可能的。TTL
生活在钥匙上,而不是成员上。而且这不会改变。
有关如何处理此问题的信息,请在此处阅读Josiah Carlson的建议。我也可以建议读他的书。
TW干杯
问题内容: Redis如何实现密钥过期?从这里我了解到Redis存储了密钥将过期的时间,但是这是如何实现的呢? 问题答案: 简而言之-每个Redis对象都有一个过期时间。除非您将对象设置为过期,否则该时间为“从不”。 现在,到期机制本身是半延迟的。延迟过期意味着您实际上不会在读取对象之前使它们过期。读取对象时,我们检查它的过期时间戳记,如果它是过去的,则不返回任何内容,并在到达该对象时删除该对象。
问题内容: 我想删除与“用户*”匹配的键。 我如何在Redis命令行中做到这一点? 问题答案: 此功能目前无法一口气完成(请参阅文档中的注释)。不幸的是,您只能使用,遍历结果,然后使用来删除每个结果。 怎么样使用bash来帮助? 要逐步执行: -获取所有键并使用awk删除不需要的多余文本。 -为每一个创建一个echo语句以将其删除。 -使用DEL语句,然后将它们传递回cli。 不建议这样做是最好的
问题内容: 我已经在“ Go编程语言”中读到“无论哈希表有多大,平均都可以使用恒定数量的键比较来检索给定的键”。我不确定这在内部实现方面意味着什么。这是否意味着它会搜索每个键,直到找到匹配项,或者内部使用某种类型的二进制(或其他)搜索算法? 例如,如果我有一个具有2,000个键的地图,那么它“平均”是否需要查看1,000才能找到匹配项?或者它只像二进制搜索那样只查看11(log2 n)? 谢谢,本
问题内容: 我可以使用连接的redis-cli复制密钥吗,redis中是否预定义了任何命令? 将FSS_SYSAGENT复制到FSS_SYSAGENTDuplicate。 10.44.112.213:6403> hgetall FSS_SYSAGENT 1)“ SYSTEM_01” 2)“ {\” port \“:\” 4407 \“,\” ipAddress \“:\” 10.44.112.21
问题内容: 我正在使用此代码: 在my_set中插入“ el1”。sadd仅返回插入元素的数量。我需要的是插入元素的键,以便以后可以检索它。我确信有一种我不知道的方法。难道是正确的功能,还是我应该选择其他类似设置/获取? 编辑:我需要类似mysql中的auto_increment键。当我插入一些东西时,获取最后插入的元素以备将来使用。 我需要这样的东西: 所以我可以使用key = 1获得数组 问题
问题内容: 我知道我可以在地图迭代的, 并寻找钥匙,但是有没有更有效的方法来测试地图中钥匙的存在? 我在语言规范中找不到答案。 问题答案: 一线回答: 说明: Go中的语句可以同时包含条件和初始化语句。上面的示例同时使用: 初始化两个变量- 将从映射中接收“ foo”的值或从“零值”(在这种情况下为空字符串)接收值,并且将收到一个布尔值,如果在映射中实际存在“ foo” ,则该布尔值将设置为 计算