【发布时间】:2013-12-03 20:40:12
【问题描述】:
我正在学习 Redis 并使用现有的应用程序(例如转换它的一部分)进行练习。
我真的很难理解首先 IF 然后(如果适用)如何 在一个特定的用例中使用 Redis ...如果这是超级道歉基本的,但我太新了,我什至不确定我问的是否正确:/
场景:
Images 由服务器接收,time_taken 和 resolution 等信息保存在数据库条目中。然后将图像与一个Event 相关联(例如“belong_to”)......对于 RDBS 来说,这一切都非常简单。
我想使用 Redis 来维护每个事件的 50 个最近上传的图像对象的列表,以便在请求时交付给客户端。我认为Sorted Set 可能是合适的,但这是我的担忧:
首先,我不确定是否可以/应该以这种关联方式使用 Sorted Set?它可以引用 Redis 中的其他对象吗?还是有更好的方法来做到这一点?
其次,我需要能够删除超过 X 分钟的元素。我知道用于键的 EXPIRE 命令,但我不能使用它,因为并非所有图像都需要以相同的周期过期,等等。
第二部分似乎更像是对字段的查询,这让我认为 Redis 不能使用……但后来我读到我可以使用 Sorted Set score 来存储时间戳并找到以这种方式“比 X 更老”。
有人可以澄清这两个问题吗?非常感谢!
更新
知道我需要为每张图像存储的数据量很小并且会被传递到客户端的浏览器,那么将其存储在排序集的member“字段”中会有什么问题吗?
- 例如
Sorted Set=>event:14:pictures <time_taken> "{id:3,url:/images/3.png,lat:22.8573}"
这会保存我需要的数据,并为给定事件创建一个可快速更新的最后 X 张图片列表,如果需要,还可以识别超过 X 分钟的图片...
【问题讨论】:
标签: redis