2016-09-22 6 views
0

リストは、固定サイズで、必要なサイズでltrimを実行することで簡単に実行できます。ただし、サイズ制限されていないデータを含むリストをどのように維持することができますか。レディスの時間制限付きリスト

など。私は最後の10分間に私のウェブサイトにログインしたすべてのuser_idsのリストをどのように維持しますか?これを達成するための最も効率的な方法の実例を示してください。たぶん私は間違ったデータ型でこれに近づいていますか?

答えて

2

リストの代わりにソートされたセットを使用してください。 Unixのタイムスタンプをアイテムのスコアとして使用します。古いまず、挿入時間によってソートされた最後の10分のアイテムを、取得するには ZADD myzet <current timestamp> item

ZRANGEBYSCORE myzset (<current timestamp - 600 seconds> (+inf

を最初にZREVRANGEBYSCOREを置き換え、最新のを取得するにZSETの項目を追加するには

ZRANGEBYSCORE。

ZREMRANGEBYSCORE -inf (<current timestamp - 600 seconds>

:期限切れの項目を削除するには