草庐IT

python - 你如何使 Redis 中的哈希字段过期?

我想在不同的时间后使哈希的某些字段过期。从文档看来不可能:http://redis.io/commands/expire.我能以某种方式模仿这种行为吗?目前,我只是将哈希名称复制为所有字段的前缀,并为每个字段添加过期时间。对于我要存储的结构是:"PEOPLE":{"NICK":29"AMANDA":23}但我不能在“NICK”上设置过期,只能在整个哈希“PEOPLE”上设置。所以我将它转换为键和值的数量:"PEOPLE_NICK":29(expire2hours)"PEOPLE_AMANDA"23(expire1hour)但是有很多键,这使得管理变得非常困难并且获取起来更加乏味,因为我

scala - Redis 使用事务获取和设置 key 过期

我正在使用etatyredisscala(https://github.com/etaty/rediscala)客户端。这是我的功能privatedefgetVersionTime(db:RedisClient,interval:Long)(implicitec:ExecutionContext):Future[Long]={importakka.util.ByteStringimportredis.ByteStringFormatterimplicitvalbyteStringLongFormatter=newByteStringFormatter[Long]{defserializ

c# - 我们可以为 Azure Redis 缓存中的所有 key 设置过期时间吗?

要在创建key时为其设置过期时间,我们可以使用StringSetAsync并传递过期时间戳值。但是,如果我们想一次设置多个键值对,这是不可能的-TaskStringSetAsync(KeyValuePair[]values,Whenwhen=When.Always,CommandFlagsflags=CommandFlags.None);TaskStringSetAsync(RedisKeykey,RedisValuevalue,TimeSpan?expiry=default(TimeSpan?),Whenwhen=When.Always,CommandFlagsflags=Comma

caching - 如果正在使用,如何将 key 保留在redis中,如果不使用,如何过期?

我在Redis中有一个特定的缓存系统。这个系统的内容非常不稳定,值一直在增加和减少。我想尽可能多地将“使用过”的key保留在内存中,同时让旧key过期。每个请求可能需要缓存中的数百个键。我知道我可以设置一个“足够长”的过期时间,并且只处理缓存未命中,但我希望尽可能少的未命中。目前我正在做这样的事情,当我写入/读取缓存时(伪代码)#writewrite(key,value)expire(key,ttl)#readread(key)expire(key,ttl)我可以使用流水线优化读取。现在这似乎仍然不是最好的方法。谁能给我一个更好的策略? 最佳答案

REDIS如何从 key 中删除过期时间

我进行了充分的搜索,得出这样的问题还没有被问到的结论。假设我们有一个REDISSETKEY:SETTEST_KEY1TTLTEST_KEY##-1(unlimited)EXPIRETEST_KEY1000#1TTLTEST_KEY##1000(1000seconds)现在假设我希望从该特定key中删除过期时间,这样TTL就会返回-1,该怎么办?我已经尝试将EXPIRE设置为-1但它不起作用 最佳答案 只需使用SET命令重置它:SETTEST_KEY1TTLTEST_KEY##-1一个更通用的命令是PERSIST,它也适用于LIST、

caching - 带有过期条目的 Redis 列表?

我正在寻找一种方法来为用户存储项目列表,该列表将在24小时内过期。有没有办法使用Redis来完成此操作?我在考虑只使用列表并为每个单独的项目设置过期时间,有没有更好的方法? 最佳答案 我使用:ZADD-向有序集中添加新的唯一值。ZRANGE-从集合中获取所有按分数排序的当前值。(ZREMRANGEBYSCORE已弃用)ZREMRANGEBYSCORE-从集合中删除分数之间的所有键。在此解决方案中,分数=时间戳例如:3值插入:ZADDmykey160val1//1ZADDmykey161val2//1ZADDmykey120val3/

关于元素过期的 Redis Lettuce Java 库通知

我可以使用Lettuce管理redis通知吗?我找不到任何示例或文档。当元素在Redis中过期时,我只需要在我的Java代码中有一些通知/回调。让我举个例子...对不起,阅读Lettuce文档对我没有帮助(我已经花了一些时间)假设我有一个对象的命名空间,我在其中执行get和set命令:"ONLINEUSERS:userid"我添加一个将在一小时后过期的用户:syncCommands.setex("ONLINEUSERS:"+userid,3600,mapper.writeValueAsString(userObject));如何在3600秒后执行我的java代码中的方法使key过期?我

Redis mark key volatile 无限过期

我想将键标记为volatile但我不希望Redis使它们过期,除非我达到最大内存配置。是否可以将键标记为易变但使用无限值​​?编辑我搜索了谷歌和邮件列表,但没有找到任何东西 最佳答案 如果在你的情况下,不需要进行正常的key过期,你可以试试这个技巧方法。但是如果你也想用正常的方式让一些key过期,那么这个方法就错了。将内存策略设置为volatile-ttl可以evictkeyswithanexpireset,andtrytoevictkeyswithashortertimetolive(TTL)first,inordertomake

asp.net-mvc - 如何使用 RedisSessionStateProvider 配置 Redis 缓存过期?

我创建一个MVC示例应用程序使用RedisSessionStateProvider作为自定义session状态。我将一个变量设置为session状态,效果很好。但是我不知道如何同步session和Redis中的项目过期时间。有人可以帮忙吗?这是来自web.config的参数"[String]loggingClassName=""[String]loggingMethodName=""[String]/>-->我正在使用最新版本:RedisSessionStateProvider版本1.6.4Redis版本2.8.21 最佳答案 Re

spring-boot - 是否有可能使来自像 redis 这样的 gemfire 区域的特定键的数据过期

您好,我是gemfire的新手,我想在我设置的空闲时间后从gemfire区域为特定key删除数据。我通过以下代码使用redis完成了此操作。jedis.set(key,value);config.setMaxIdle(50);jedis.expire(key,config.getMaxIdle());但是如何在gemfire中做到这一点。任何帮助。谢谢。 最佳答案 如果您将区域配置为使用自定义到期,则可以控制单个key的到期。您提供CustomExpiry接口(interface)的实现,它可以查看每个条目并决定它何时应该过期。例如