Redisで固定長のキューを設定する方法

Redisでは、リストデータ構造を使って固定長のキューを実装することができます。実装方法を以下に示します。

  1. LPUSH
  2. RPUSH
  3. LRANGE

以下にサンプルコードを示します。

import redis

MAX_QUEUE_SIZE = 10

# 连接 Redis
r = redis.Redis(host='localhost', port=6379, db=0)

# 添加元素到队列
def enqueue(item):
    r.lpush('myqueue', item)
    # 如果队列长度超过最大值,则移除队尾元素
    if r.llen('myqueue') > MAX_QUEUE_SIZE:
        r.rpop('myqueue')

# 获取队列中的元素
def get_queue():
    return r.lrange('myqueue', 0, -1)

# 示例代码
enqueue('item1')
enqueue('item2')
enqueue('item3')
enqueue('item4')
print(get_queue())  # 输出:[b'item4', b'item3', b'item2', b'item1']

RedisのLPUSHコマンドで要素をキューに追加し、キュー長が最大値を超えた場合はRPOPコマンドで末尾の要素を削除します。LRANGEコマンドを使えばキュー全体の要素を取得できます。なお、lrangeではバイナリストリングのリストが返ってくるので、具体的なプログラミング言語に応じて処理する必要があります。

bannerAds