在Redis中存储带有时间戳的值列表

4
我正在使用Vertx和Redis,需要存储三元组(url,words,date)。
Words是值的列表而不仅仅是一个长字符串,因为当我查询这些单词时,我想要处理一个字符串列表。每次检查URL是否存在于Redis中时,日期应更新。
我的问题如下:
1. 是否可以在Redis中存储值的列表而不使用LPUSH或RPUSH之类的东西? 我不想使用它们,因为每个URL大约有40个单词,我不想每次为单个URL创建40个请求。 2. 是否可以添加日期字段,在每次查询时都可以更新它?还是应该检查它是否存在,如果存在则手动更新?
我看到了许多使用LPUSH(或类似物)解决这些问题的示例,但正如我所说,我想创建一个插入请求并完成它,同样,我希望尽可能少地获取结果(理想情况下只需1个请求)。
提前感谢您。
2个回答

2
如果您的Redis服务器版本大于2.4,您可以一次性使用LPUSH (文档)来推送多个值。
或者,您可以使用Redis事务一次执行多个命令。
我不知道是否有一个命令可以让您获取键的创建/更新日期,我认为您需要像在这个SO问题中手动创建它。

0

您可以轻松地使用Redis管道。此功能可以将一批命令作为单个命令发送。以下是使用Redisson框架的示例:

String[] urls = ...

RBatch batch = redisson.createBatch();
RList<String> list = batch.getList("yourList");
for (int i = 0; i < 40; i++) {
      list.addAsync(urls[i]);
}
// send to Redis as single command
batch.execute();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接