リストは、固定サイズで、必要なサイズでltrim
を実行することで簡単に実行できます。ただし、サイズ制限されていないデータを含むリストをどのように維持することができますか。レディスの時間制限付きリスト
など。私は最後の10分間に私のウェブサイトにログインしたすべてのuser_ids
のリストをどのように維持しますか?これを達成するための最も効率的な方法の実例を示してください。たぶん私は間違ったデータ型でこれに近づいていますか?
リストは、固定サイズで、必要なサイズでltrim
を実行することで簡単に実行できます。ただし、サイズ制限されていないデータを含むリストをどのように維持することができますか。レディスの時間制限付きリスト
など。私は最後の10分間に私のウェブサイトにログインしたすべてのuser_ids
のリストをどのように維持しますか?これを達成するための最も効率的な方法の実例を示してください。たぶん私は間違ったデータ型でこれに近づいていますか?
リストの代わりにソートされたセットを使用してください。 Unixのタイムスタンプをアイテムのスコアとして使用します。古いまず、挿入時間によってソートされた最後の10分のアイテムを、取得するには ZADD myzet <current timestamp> item
: ZRANGEBYSCORE myzset (<current timestamp - 600 seconds> (+inf
を最初にZREVRANGEBYSCORE
を置き換え、最新のを取得するにZSETの項目を追加するには
ZRANGEBYSCORE。
ZREMRANGEBYSCORE -inf (<current timestamp - 600 seconds>