Redisで大きなセットを削除する
Redisで大きなオブジェクトの削除が遅い理由の詳細については、このクイック概要をお読みください
Redisで大きなセットを削除するには:
-
キーの名前を一意の名前空間付きキーに変更して、セットが他のRedisクライアントにすぐに「削除」されたように見えるようにします。
-
セットからメンバーを少しずつ、空になるまで少しずつ削除します。削除コマンドのサイズを制限することで、サーバーを長時間ブロックしないようにします。
次のコードは、Redis接続の失敗を適切に処理しないことに注意してください。いずれかのRedisコマンドが失敗して例外が発生した場合は、手動でクリーンアップする必要があります。
# Rename the key
newkey = "gc:hashes:" + redis.INCR("gc:index")
redis.RENAME("my.set.key", newkey)
# Delete members from the set in batches of 100
cursor = 0
loop
cursor, members = redis.SSCAN(newkey, cursor, "COUNT", 100)
if size of members > 0
redis.SREM(newkey, members)
end
if cursor == 0
break
end
end
$redis = Redis.new
def delete_set(key)
# Rename the key
newkey = "gc:sets:#{$redis.incr("gc:index")}"
$redis.rename(key, newkey)
# Delete members from the set in batches of 100
cursor = "0"
loop do
cursor, members = $redis.sscan(newkey, cursor, count: 100)
$redis.srem(newkey, members) if members.size > 0
break if cursor == "0"
end
end
# Example:
#
# delete_set("my.large.set")
以下は、Rubyでバックグラウンドジョブを使用した上記の実装例です。
- レスク
- Sidekiq
←「Redisでの大きなオブジェクトの削除」に戻る
-
Redis GEODIST –地理空間値の2つのメンバー間の距離を取得する方法
このチュートリアルでは、キーに格納されている地理空間値の2つのメンバー間の距離を取得する方法について学習します。このために、Redis GEODISTを使用します コマンド。 GEODISTコマンド このコマンドは、指定された単位のキーに格納されている地理空間値(Sorted Set)の2つのメンバー間の距離を返すために使用されます。指定されたメンバーの一方または両方が地理空間値に存在しない場合、nullが返されます。 指定する単位は次のタイプである必要があります:- m メーター用(デフォルト)。 km キロメートルのために。 mi 何マイルも。 ft
-
Excel で大量のデータ セットを分析する方法 (6 つの効果的な方法)
この記事では、 大規模なデータ セット を分析する方法を紹介します エクセルで。ビジネス活動の長所と短所を知ることは非常に重要です。アカウントと販売記録を保持するのは動的なプロセスです 組織の。販売、購入、または交換が一定期間に頻繁に発生するためです。そのため、今日から過去 3、4 か月間の売上や利益の記録を知りたい場合、それらに関する膨大な量のデータが見つかる可能性があります。幸いなことに、Excel には、この問題に役立つ非常に優れた機能がいくつかあります。 分析できます これらの 大規模なデータ セット Excel で部品ごとに計算できるため、計算が簡単になります。 Excel で大