草庐IT

results_ttl

全部标签

go - 使用redis作为缓存,TTL和Mysql中每个表的字节大小限制

我想将mysql表(键:id,值:序列化字节中的行)缓存到redis中。缓存必须支持每个表的TTL和大小限制(以字节为单位)。例如:表user可以使用100MB缓存,表device可以使用100MB缓存。我尝试在应用层实现TTL和大小限制,但管理和监控key过期的开销太大。有谁知道有什么想法或开源的吗? 最佳答案 我不能说去,但是基本上,Redis有一个TTL命令,允许您自动从缓存中删除键值对。以最简单的形式,您可以:redis>SETtable1:id1"Hello""OK"redis>EXPIREtable1:id110//re

python - redis-py ttl 返回无,但 redis 文档引用 -1

为什么python在这里返回None而它应该是-1? 最佳答案 如果key不存在,redis-cliindicatesthisbyreturning-1.对于Python使用,用None表示更自然。你可以看到这是故意这样做的,下面的代码来自redis-py中的Redis类。调用response_callback将TTL响应从-1更改为None。RESPONSE_CALLBACKS=dict_merge(StrictRedis.RESPONSE_CALLBACKS,{'TTL':lambdar:r!=-1androrNone,})

java - 如何获取 ttl 以及 redis/redisson 中的键值

我正在使用redissonjava客户端在Redis中存储键和值。示例如下RMapCachemapCache=redisson.getMapCache("test");//withttl=10secondsIntegerprevValue=mapCache.put("1",10,10,TimeUnit.SECONDS);当我在mapCahce上执行get操作时,有没有办法获取key的剩余ttl? 最佳答案 目前,您可以使用RKeys并查询您感兴趣的key来做到这一点RKeysrkeys=redissonClient.getKeys(

python - redis redis.client rq Queue job.result # => None

我正在尝试使用Redis找出rq队列。我有一个简单的test_job函数,我想在队列中使用它。deftest_job():return"OK"脚本主要取自rq文档:#!/usr/bin/envpythonimportredis.clientfromrqimportQueueimporttimefromhelpersimporttest_jobdefmain():q=Queue(connection=redis.client.Redis('localhost',6379))job=q.enqueue(test_job)printjob.result#=>Nonewhilenotjob.r

redis - 在redis 2.8中,如何修改值并保持TTL不变

我有Redis2.8.19。在下面的序列中,我希望在修改mykey的值时不会重置原来的60秒过期时间。127.0.0.1:6379[10]>SETmykeyAEX60NXOK127.0.0.1:6379[10]>TTLmykey(integer)53127.0.0.1:6379[10]>GETSETmykeyB"A"127.0.0.1:6379[10]>TTLmykey(integer)-1127.0.0.1:6379[10]>GETmykey"B"在GETSET之后,我希望TTLmykey返回大约40秒而不是-1.是否可以在不丢失或重置超时的情况下修改该值?感谢您提供任何提示或解决方

redis - 关于带有 TTL 的键的 redis EVAL 原子性怎么样?

据我所知,从客户端的角度来看,redis是单线程解决方案。但是一般架构呢?有趣的是,我们有一些lua脚本可以在具有一些TTL的键上执行多个命令。Redis垃圾回收是如何工作的?它会中断EVAL执行并驱逐某些值或内部任务与用户任务共享单个线程吗? 最佳答案 Lua是majik,正因为如此,当Redis执行Lua时时间会停止。换句话说,一旦你开始运行脚本,过期就会停止,因为时间不会提前。但是,如果key在脚本启动前过期,脚本将无法使用它。 关于redis-关于带有TTL的键的redisEVA

redis - 是否可以为 redis 中的所有键设置默认 ttl?

我已经阅读了redis配置document但找不到这样的选项。我搜索并发现“默认情况下,key将永远存在”。我想急切地改变这种默认行为。NormallyRediskeysarecreatedwithoutanassociatedtimetolive.Thekeywillsimplyliveforever,unlessitisremovedbytheuserinanexplicitway,forinstanceusingtheDELcommand.TheEXPIREfamilyofcommandsisabletoassociateanexpiretoagivenkey,atthecost

java - 使用 TTL 的最佳海量数据持久存储?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion我们正在构建一个系统,该系统需要将大量数据放入某个持久存储中并保存一段固定的时间-30到60天。由于数据并不重要(例如,当虚拟机出现故障时,我们可能会丢失一些数据)并且我们不想为每次请求都保留数据而付出代价(延迟对我们来说至关重要),我们正在考虑缓冲和批处理数据或以异步方式发送。数据仅附加,我们需要为每个请求保留2-3个项目,系统进程在水平扩展的多个主机上约为10krps。我们在选择Mon

node.js - 如何从 MongoDB 回调和 Node 中删除 "result"、 "insertedCount"和 "insertedIds"并仅获取一个数据库对象数组?

我刚刚更新了Node,之前有一段时间没有这样做,不得不重新安装MongoDB和其他模块。以前我在使用find()函数时只会获得一个数据库对象数组,而现在我获得了一个包含“results”、“ops”、“insertedCount”和“insertedIds”的JSON对象。我不记得最初设置它时我可能做了什么,或者这可能只是Mongo的一个恼人的变化,但我想回到只获取数据库对象数组的状态,这样我就不必测试我的整个服务器。我尝试了几个npm解析模块都没有成功。这是一个例子:{result:{ok:1,n:1},ops:[{user:'595ee2fec2924e5435dfdd2d'},_

node.js - MongoDB 类型错误 : Cannot read property 'result' of undefined

我想向集合中插入数据,在插入之前我需要检查它是否存在collection.find({sno:req.body.sno}).toArray((err,result)=>{if(result.length>0){flag=false;callback(flag);}else{console.log(result.length);collection.insertOne({sno:req.body.sno,password:req.body.password},(err,insertResult)=>{if(insertResult.result.ok===1){flag=true;}ca