草庐IT

results_ttl

全部标签

尽管设置了 TTL,但 Redis 缓存未被清除

我想让存储在redis缓存中的数据在给定时间后自动从缓存中清除,而不需要调用它的delete方法。在此POC中,我将TTL设置为60秒。我已经尝试使用APIsetDefaultExpiration、setExpires在缓存管理器中设置它,并使用API过期在RedisTemplate中设置它。到目前为止,没有一种解决方案对我有用。@ConfigurationpublicclassRedisServerConfigextendsCachingConfigurerSupport{@BeanpublicRedisTemplateredisTemplate(){RedisTemplatered

redis - GET 和 TTL 的 SETEX 等价物

SETEX是一个有用的Redis命令,通过它可以在单个原子操作中设置键的value和expiry。是否有一个等效的操作可以使一个人以原子方式检索key的value和ttl?我知道我也可以在管道中做到这一点,但我想问的是是否存在像SETEX这样优雅的东西。如果重要的话,我使用的是Redis2.8.4。 最佳答案 据我所知,没有这样的命令。但是,您可以将GET和TTL包装到Lua脚本中,以在单个原子调用中同时获取值和ttl。此外,您不能通过流水线实现这一目标。因为Redis不保证管道中的命令以原子方式运行。

redis - GET 和 TTL 的 SETEX 等价物

SETEX是一个有用的Redis命令,通过它可以在单个原子操作中设置键的value和expiry。是否有一个等效的操作可以使一个人以原子方式检索key的value和ttl?我知道我也可以在管道中做到这一点,但我想问的是是否存在像SETEX这样优雅的东西。如果重要的话,我使用的是Redis2.8.4。 最佳答案 据我所知,没有这样的命令。但是,您可以将GET和TTL包装到Lua脚本中,以在单个原子调用中同时获取值和ttl。此外,您不能通过流水线实现这一目标。因为Redis不保证管道中的命令以原子方式运行。

Redis 键卡在 -1 的 TTL

我正在使用Redis管理API的速率限制,并使用SETEX每小时自动重置速率限制。我发现Redis无法清除某些键并在-1报告它们的TTL。下面是使用占位符IP地址演示这一点的redis-clisession示例:>GETallowance:127.0.0.1>0>TTLallowance:127.0.0.1-1>GETallowance:127.0.0.10请注意,尽管它的TTL为负,但当我GET它时,redis不会清除它。我已尝试重现此状态,但无法重现。>SETEXdoomedkey-1hello(error)ERRinvalidexpiretimeinSETEX>SETEXdoom

Redis 键卡在 -1 的 TTL

我正在使用Redis管理API的速率限制,并使用SETEX每小时自动重置速率限制。我发现Redis无法清除某些键并在-1报告它们的TTL。下面是使用占位符IP地址演示这一点的redis-clisession示例:>GETallowance:127.0.0.1>0>TTLallowance:127.0.0.1-1>GETallowance:127.0.0.10请注意,尽管它的TTL为负,但当我GET它时,redis不会清除它。我已尝试重现此状态,但无法重现。>SETEXdoomedkey-1hello(error)ERRinvalidexpiretimeinSETEX>SETEXdoom

redis - 使用 ttl 将值设置为键

是否可以在redis的单个命令中设置一个带有值和ttl的键我正在尝试在Redis和http://redis.io/commands/hsetnx中实现锁定似乎是最好的方法。它是原子的,如果键已经存在则返回0。是否可以用TTLHSETNX例如HSETNXmyhashmykey"myvalue"10#andkeyexpiresafter10seconds,andasubsequentHSETNXafter10secondsreturnsavalue1i.e.itbehavesasifmykeyisnotpresentinmyhash 最佳答案

redis - 使用 ttl 将值设置为键

是否可以在redis的单个命令中设置一个带有值和ttl的键我正在尝试在Redis和http://redis.io/commands/hsetnx中实现锁定似乎是最好的方法。它是原子的,如果键已经存在则返回0。是否可以用TTLHSETNX例如HSETNXmyhashmykey"myvalue"10#andkeyexpiresafter10seconds,andasubsequentHSETNXafter10secondsreturnsavalue1i.e.itbehavesasifmykeyisnotpresentinmyhash 最佳答案

redis - 所有实体的 Spring Data Redis 全局 TTL

我需要为我拥有的每个实体设置全局TTL,它应该可以在一个地方进行配置。有机会通过@RedisHash注释来做到这一点:@RedisHash(value="persons",timeToLive=100)publicclassPerson{...}或者我可以有一个字段publicclassPerson{@TimeToLeaveLongttl;}但在这种情况下,我不能在一个地方改变它,这不是很舒服维护它。我在applicaiton.properties中有一个属性:app.redis.ttl=100如果有机会在属性级别上进行更改,那就太棒了。 最佳答案

redis - 所有实体的 Spring Data Redis 全局 TTL

我需要为我拥有的每个实体设置全局TTL,它应该可以在一个地方进行配置。有机会通过@RedisHash注释来做到这一点:@RedisHash(value="persons",timeToLive=100)publicclassPerson{...}或者我可以有一个字段publicclassPerson{@TimeToLeaveLongttl;}但在这种情况下,我不能在一个地方改变它,这不是很舒服维护它。我在applicaiton.properties中有一个属性:app.redis.ttl=100如果有机会在属性级别上进行更改,那就太棒了。 最佳答案

python - 任务 Celery 中的 RuntimeError : Never call result. get()

我正在使用celery将任务发送到远程服务器并尝试取回结果。使用update_state不断更新任务状态远程服务器上的方法。我正在使用发送任务app.send_task('task_name')获取celery任务的结果是一个阻塞调用,我不希望我的Django应用程序等待结果和超时。所以我尝试运行另一个celery任务来获得结果。@app.task(ignore_result=True)defcatpure_res(task_id):task_obj=AsyncResult(task_id)task_obj.get(on_message=on_msg)但它会导致以下错误。Traceba