2016-02-24 51 views
2

我正在使用Vertx和Redis,並且需要存儲(url,words,date)三元組。在Redis中存儲包含時間戳的值列表

單詞是值的列表,而不只是一個長字符串,因爲當我查詢這些單詞時,我想處理一個字符串列表。如果URL中的Redis

存在

和日期應更新,每次我檢查,所以我的問題是:

  1. 是否有可能存儲在Redis的值的列表,而無需使用類似LPUSH或RPUSH?我不想使用它們,因爲每個URL有大約40個字,我不想每次都爲單個URL創建40個請求
  2. 是否可以添加日期字段,以便每次更新我查詢它?或者我應該檢查它是否存在,以及它是否手動更新它?

我見過很多使用LPUSH(或類似的)解決這些問題的例子,但正如我所說我想創建一個插入請求並用它來完成,同樣,我想獲得結果用盡可能少的(最好1)請求

在此先感謝

回答

2

如果您的Redis服務器> 2.4,你可以LPUSHdoc)在一次多個值。

或者,您可以使用Redis transaction一次執行多個命令。

我不知道一個命令,它可以讓你一鍵搞定的創建/更新日期,我認爲你必須手動創建它就像這個SO question

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(); 
相關問題