簡體   English   中英

從redis獲取最新的set / hash

[英]Getting the latest set/hash from redis

我剛剛開始使用redis而且我已經通過noSql擊中了我的第一個絆腳石; 以前我所知道的只是SQL服務器。

我理解一切都是基於價值的原則。 但是如何使用排序,例如:

使用哈希集:

HMSET users:1 firstname 'james' lastname 'smith' created 'datetime.datatime.now'

現在我假設您添加第二條記錄,您將得到哈希集的長度(在這種情況下,我們將說它的1返回值x ),然后添加另一行:

HMSET users:x firstname 'john' lastname 'smith' created 'datetime.datatime.now'

你怎么會得到最新的紀錄? 按日期? 或者你能說'在hashset的-1處獲得記錄'嗎?

可能我建議在排序集更合適時使用hashset?

您需要檢查SORT命令。

如果存儲在紀元時間,您可以按創建時間戳排序。

> HMSET users:1 firstname 'john' lastname 'smith' created 1319729878
"OK"
> HMSET users:2 firstname 'Jane' lastname 'Forbes' created 1319729910
"OK"
> sadd users 1
true
> sadd users 2
true
> sort users get users:*->firstname by users:*->created
["john","Jane"]
> sort users get users:*->firstname by users:*->created desc
["Jane","john"]

如果需要,您可以獲得多個密鑰,SORT可能是具有大多數選項的命令,請研究文檔。

關於密鑰,你必須仔細考慮可能的密鑰重用(刪除,計數+ 1,插入會重用密鑰?),所以我只是從項目中的關系數據庫中獲取密鑰。

您應該使用一組有序的用戶ID,當您添加到集合時,添加用戶ID和時間戳作為分數。

然后你可以使用像zrevrange這樣的asc或desc命令將它們拉出來,將其限制為1條記錄以獲得最新信息。

然后,您可以從哈希中獲取所有值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM