草庐IT

php - 在 Redis 中,您将如何更新 key 并重置原始 TTL?

我通过PHPRedis(实际上是围绕PHPRedis构建的更高级别的包装器)与Redis交互。我想更新一个键并在数据库中重置它,但是TTL应该在程序的当前点重置为原始值我的类不知道原始TTL是什么。假设原来的TTL是12小时。我想做这样的事情:redis->get($key)$original_ttl=//figureitout$new_value=somethingredis->set($key,$new_value,$original_ttl)然后我们以引用新值和另外12小时ttl的原始key结束。这可能吗? 最佳答案 只需使用

python - Redis在results_ttl=0的时候还是会填满,为什么?

问:作业结果立即丢弃,为什么redis会填满?我使用Redis作为队列来异步创建PDF,然后将结果保存到我的数据库中。由于它已保存,我以后不需要访问该对象,因此我不需要在处理后将结果存储在Redis中。为了防止结果留在redis中,我将TTL设置为0:parameter_dict={"order":serializer.object,"photo":base64_image,"result_ttl":0}django_rq.enqueue(procces_template,**parameter_dict)问题是尽管redisworker说作业立即过期:15:33:35JobOK,re

redis - Spring Data RedisTemplate,设置值时ttl不起作用

我想为存储在Redis中的key设置一个ttl,我是通过以下方式完成的:@ComponentpublicclassRedisBetgeniusMarketServiceimplementsBetgeniusMarketService{privatestaticfinalintDEFAULT_EVENTS_LIFE_TIME=240;@Value("${redis.events.lifetime}")privatelongeventsLifeTime=DEFAULT_EVENTS_LIFE_TIME;@AutowiredprivateRedisTemplatemarketTemplate

redis - 如何在不影响剩余 TTL 的情况下更新 Redis 值?

是否可以在不删除现有ttl的情况下SETredis键?目前我知道的唯一方法是找出ttl并执行SETEX但这似乎不太准确。 最佳答案 KEEPTTL选项将添加到redis>=6.0的SEThttps://redis.io/commands/sethttps://github.com/antirez/redis/pull/6679TheSETcommandsupportsasetofoptionsthatmodifyitsbehavior:EXseconds--Setthespecifiedexpiretime,inseconds.PX

redis - 如何使用 StackExchange.Redis 设置带 TTL 的字符串

我正在寻找一种方法来做一个非常simpleTTLRedis中的字符串:那么如何在StackExchange.Redis中执行以下等效操作?SETEXlolcat10"monorailcat"我找到了KeyExpire,但这意味着我设置的每个key都需要调用两次? 最佳答案 糟糕。没关系:_Redis.StringSet("lolcat","monorailcat",TimeSpan.FromSeconds(10)); 关于redis-如何使用StackExchange.Redis设置带T

amazon-ec2 - 雷迪斯 | redis-cli INFO/avg_ttl 值

当我运行命令redis-cliINFO时,其中一个返回值指示avg_ttl。我不确定这是用什么时间单位表示的?例子:#Keyspacedb0:keys=706818,expires=228745,avg_ttl=1521990750 最佳答案 这确实有点令人困惑。TTL命令返回值以秒为单位PTTL命令返回值以毫秒为单位来自INFO的avg_ttl以毫秒为单位另请注意,此平均值avg_ttl只是基于随机检查key的估计值。 关于amazon-ec2-雷迪斯|redis-cliINFO/av

带有 TTL 的 Redis 多集

在redis中有一个SETEX命令允许我设置一个过期的key,是否有这个命令的多集版本也有一个TTL?MSET和MSETNX命令都没有这样的选项。 最佳答案 我也在找这种操作。我没有找到任何东西,所以我用MULTI/EXEC做了:MULTIexpirekey1expirekey2expirekey3EXEC 关于带有TTL的Redis多集,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

redis - 集合成员的 TTL

是否可以在Redis中设置TTL(生存时间)而不是针对特定键,而是针对集合的成员?我正在使用Redis文档提出的标签结构——数据是简单的键值对,标签是包含与每个标签对应的键的集合,例如>SETEXid:id_1100'Loremipsum'OK>SADDtag:tag_1id:id_1(integer)1keyid:id_1将按预期过期,但我没有看到从tag:tag_1集中删除相应成员的有效方法。我想出的一种方法是使用包含脚本的cron作业,该脚本会定期从集合中删除过期的key-通过将所有标签名称添加到另一个集合,然后遍历所有标签,然后遍历与每个标签对应的所有ID并检查相应的key是否

mongodb - MGO TTL 索引创建以选择性地删除文档

我正在使用Golang和MongoDB。我有一个集合需要保存一个可以持久或易变的文档。因此,如果它设置了一个过期日期(例如expireAt),该文档将被认为是易变的并被删除,否则它将保留在集合中,除非它被手动删除。阅读thisdoc我找到了一个索引,它可能会在我需要时起作用。基本上我需要在mgo中复制这种索引:db.log_events.createIndex({"expireAt":1},{expireAfterSeconds:0})db.log_events.insert({"expireAt":newDate('July22,201314:00:00'),"logEvent":2

go - Go Transport 中的 keep-alive TTL 从不关闭连接

我在AWS上托管了一个应用程序,该应用程序在生产环境中运行,创建了一个http服务器,如以下示例代码中所述。go库中默认超时为180秒。因此,理想情况下,未使用的连接应在180秒后关闭。myMux:=http.NewServeMux()myMux.Handle("/SOME_PATH",appHandler{myHandler})err=http.ListenAndServe(viper.GetString("handler.port"),myMux)问题是当应用程序的流量增加时,连接数也会增加。但是当流量下降时,连接数保持不变。我正在使用goversiongo1.10linux/am