Redisで大きなリストを削除する
Redisで大きなオブジェクトの削除が遅い理由の詳細については、このクイック概要をお読みください
Redisで大きなリストを削除するには:
-
キーの名前を一意の名前空間付きキーに変更して、リストが他のRedisクライアントにすぐに「削除」されたように見えるようにします。
-
リストが空になるまで、リストから要素を少しずつ削除します。削除コマンドのサイズを制限することで、サーバーを長時間ブロックしないようにします。
次のコードは、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での大きなオブジェクトの削除」に戻る
-
Redis.ioの更新と拡張
本日、Redis.ioのリニューアルを発表できることをうれしく思います。 Redis.ioは、常にRedisのホームであり、新しいRedisユーザーのエントリポイントです。今回のリリースでは、サイトのデザインを最新化し、インフラストラクチャを更新しながら、コアのRedisドキュメントを改訂しました。 この投稿では、サイトの再起動の動機について説明し、Redis.ioサイトの改訂で採用した原則を共有し、次の内容をプレビューします。 Redis.ioの更新 Redisは、最初のコミットから13年で長い道のりを歩んできました。現在、基盤となるデータベーステクノロジーとして確立され、世界中のデ
-
FastlyComputeでRedisを使用する
この例では、古いバージョンのFastlyCLIを使用しています。最新バージョンについては、この記事を確認してください。 この投稿では、Fastly Compute@Edgeで実行される簡単なアプリケーションを作成します。アプリケーションはUpstashRedisにアクセスして、ページビューを追跡します。 モチベーション エッジコンピューティングは、近年最もエキサイティングなトレンドの1つです。 CloudflareやFastlyなどのCDNサービスは、ユーザーがエッジインフラストラクチャでアプリケーションを実行できるようにするために開始されました。これは、開発者がグローバルに分散された高