Select

搜尋 Redis 數據庫

  • August 30, 2015

想像一下在 Redis 數據庫中有一堆散列,每個散列代表一個使用者對象。例如,您將如何獲得註冊日期最低的使用者?ts_registered最低的使用者。我在 redis.io 上的命令頁面上搜尋了一下,但似乎沒有在那裡找到它的命令。

我對 Redis 沒有太多經驗,我基本上只是在檢查它是如何工作的。

Redis 沒有開箱即用的功能,可以在散列中搜尋/索引,但它為您提供了完成任務所需的所有工具。例如,可以通過在數據庫中保留一個名為 last_user_registered 或類似名稱的密鑰,並在每次使用者註冊到該使用者的 ID 時設置它來解決您的挑戰。當您想獲取在任何給定時刻註冊的最後一個使用者時 - 只需獲取它,明白了嗎?

但是您(和 Redis!)可以做得更好:例如,您可以使用 Redis 列表和 LPUSH/RPOP 成員來記錄最後加入的使用者的分數。或者,您可以使用一個排序集,其中每個成員都是一個使用者 ID,分數是時間戳……啊,可能性是無窮無盡的,你只受你的想像力(以及時間、資源等)的限制。 ;)

我認為這正是 Redis 的“愛好者”喜歡將其稱為數據庫建構工具而不僅僅是數據庫的原因——你實際上可以讓它做任何你想做的事情,如果你想要的東西已經不在 Redis 中,那麼總有Lua您可以使用它來擴展甚至開發自己的 fork 並向github提出拉取請求。

引用自:https://dba.stackexchange.com/questions/57323