Sag*_*rma 2 redis lettuce spring-data-redis
我正在尝试将一个条目推送到 Redis 中的列表中,并且还想在每次新条目进入时更新列表的 TTL。我可以使用 Redis 简单地调用 EXPIRE“my-list”ttl 来做到这一点。由于我的应用程序接收的流量很大,因此我想减少对 redis 的调用次数。
我可以在Redis中的推送操作期间设置我的TTL吗,即RPUSH“mylist”I1 I2...IN ex“TTL”,redis是否支持此命令功能的时间。我可以看到它确实支持字符串数据结构。
Redis 没有专门的命令来推送和过期列表,尽管正如您所提到的,它确实有类似字符串数据类型的命令。
您应对此挑战的方法是根据现有命令编写您自己的“命令”。但是,您可以使用 Lua 脚本(如EVAL文档页面中所述),而不是让您的应用程序调用这些命令。
Lua 脚本在服务器上缓存并自动运行。如下所示的一种可能会对您的情况有所帮助 - 它期望获取键名称、推送的元素和到期值:
local reply = redis.call('RPUSH', KEYS[1], ARGV[1])
redis.call('EXPIRE', KEYS[1], ARGV[2])
return reply
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3794 次 |
| 最近记录: |