[英]What are some ways I can design my keys to increase redis set performance?
[英]Ways to track an employees hours in redis - what was useful? - what wasn't?
我正在建立一個簡單的打卡,打卡系統,我希望能夠跟蹤用戶何時登錄和退出,以及能夠提取日期1和日期2之間的工作時間報告。
我的想法是,當他們登錄時要設置一個排序后的集合,鍵是他們的名字,分數是他們登錄時的時間戳,該值將為空白。 然后,當他們注銷時,我會將值設置為注銷時間的時間戳。 然后我可以根據分數提取報告。 這是實用的和/或有更好的方法嗎?
編輯(從評論):
使用排序集,您可以通過獲取分數大於起始時間戳的所有記錄來進行查詢。
因此,為了易於使用,假設用戶登錄時間戳為50、100、150和200,您可以告訴redis為您提供時間戳大於100的記錄的所有數據,它將返回最后2條記錄。
它可以輕松地在mysql或其他數據庫中完成,但是我相信它也可以輕松地在redis
完成。
對我來說,服務器資源至關重要,因此在mysql
上使用redis
是一大優勢。
您當然可以記錄打卡和打卡時間。 但是您不能按小時提取報告。 您必須通過拉出最后一次登錄和最后一次注銷並進行數學運算,才能在客戶端代碼中進行計算。 當然,還可以處理錯過的登錄或注銷情況。
您無需從Redis中“提取報告”,而是可以存儲和檢索數據。 有很多存儲數據的方法,但是您的問題太廣泛了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.