Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

Redisで大きなリストを削除する

Redisで大きなオブジェクトの削除が遅い理由の詳細については、このクイック概要をお読みください

Redisで大きなリストを削除するには:

  1. キーの名前を一意の名前空間付きキーに変更して、リストが他のRedisクライアントにすぐに「削除」されたように見えるようにします。

  2. リストが空になるまで、リストから要素を少しずつ削除します。削除コマンドのサイズを制限することで、サーバーを長時間ブロックしないようにします。

次のコードは、Redis接続の失敗を適切に処理しないことに注意してください。いずれかのRedisコマンドが失敗して例外が発生した場合は、手動でクリーンアップする必要があります。

擬似コード
# Rename the key
newkey = "gc:hashes:" + redis.INCR("gc:index")
redis.RENAME("my.list.key", newkey)

# Trim off elements in batche of 100s
while redis.LLEN(newkey) > 0
  redis.LTRIM(newkey, 0, -99)
end
ルビー
$redis = Redis.new

def delete_list(key)
  # Rename the key
  newkey = "gc:lists:#{$redis.incr("gc:index")}"
  $redis.rename(key, newkey)

  # Trim off elements in batches of 100
  while $redis.llen(newkey) > 0
    $redis.ltrim(newkey, 0, -99)
  end
end

# Example:
#
#   delete_list("my.large.list")

以下は、Rubyでバックグラウンドジョブを使用した上記の実装例です。

  • レスク
  • Sidekiq

←「Redisでの大きなオブジェクトの削除」に戻る


  1. Redis.ioの更新と拡張

    本日、Redis.ioのリニューアルを発表できることをうれしく思います。 Redis.ioは、常にRedisのホームであり、新しいRedisユーザーのエントリポイントです。今回のリリースでは、サイトのデザインを最新化し、インフラストラクチャを更新しながら、コアのRedisドキュメントを改訂しました。 この投稿では、サイトの再起動の動機について説明し、Redis.ioサイトの改訂で採用した原則を共有し、次の内容をプレビューします。 Redis.ioの更新 Redisは、最初のコミットから13年で長い道のりを歩んできました。現在、基盤となるデータベーステクノロジーとして確立され、世界中のデ

  2. FastlyComputeでRedisを使用する

    この例では、古いバージョンのFastlyCLIを使用しています。最新バージョンについては、この記事を確認してください。 この投稿では、Fastly Compute@Edgeで実行される簡単なアプリケーションを作成します。アプリケーションはUpstashRedisにアクセスして、ページビューを追跡します。 モチベーション エッジコンピューティングは、近年最もエキサイティングなトレンドの1つです。 CloudflareやFastlyなどのCDNサービスは、ユーザーがエッジインフラストラクチャでアプリケーションを実行できるようにするために開始されました。これは、開発者がグローバルに分散された高