কম্পিউটার

রেডিসে বড় সাজানো সেট মুছে ফেলা হচ্ছে

Redis-এ বড় বস্তু মুছে ফেলা কেন ধীর হয় সে সম্পর্কে আরও জানতে, এই দ্রুত ওভারভিউ পড়ুন

Redis এ একটি বড় সাজানো সেট মুছে ফেলতে:

  1. একটি অনন্য, নামস্থানযুক্ত কীতে কীটির নাম পরিবর্তন করুন যাতে সাজানো সেটটি অন্যান্য রেডিস ক্লায়েন্টদের কাছে অবিলম্বে "মুছে ফেলা" দেখায়৷

  2. ছোট ব্যাচে সাজানো সেট থেকে সদস্যদের ক্রমবর্ধমানভাবে মুছুন যতক্ষণ না এটি খালি হয়। আমাদের ডিলিট কমান্ডের আকার সীমিত করে, আমরা নিশ্চিত করি যে আমরা সার্ভারটিকে বেশিক্ষণ অবরুদ্ধ করব না।

অনুগ্রহ করে মনে রাখবেন যে নিম্নলিখিত কোডটি রেডিস সংযোগ ব্যর্থতাগুলিকে সুন্দরভাবে পরিচালনা করে না। যদি কোন Redis কমান্ড ব্যর্থ হয় এবং একটি ব্যতিক্রম উত্থাপন করে, তাহলে আপনাকে ম্যানুয়ালি পরিষ্কার করতে হবে।

ছদ্ম-কোড

# Rename the key
newkey = "gc:hashes:" + redis.INCR("gc:index")
redis.RENAME("my.zset.key", newkey)

# Delete members from the sorted set in batche of 100s
while redis.ZCARD(newkey) > 0
  redis.ZREMRANGEBYRANK(newkey, 0, 99)
end

রুবি

$redis = Redis.new

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

  # Delete members from the sorted set in batches of 100
  while $redis.zcard(newkey) > 0
    $redis.zremrangebyrank(newkey, 0, 99)
  end
end

# Example:
#
#   delete_sorted_set("my.large.set")

এখানে রুবিতে ব্যাকগ্রাউন্ড জব ব্যবহার করে উপরোক্ত কিছু উদাহরণ প্রয়োগ করা হল:

  • উত্তর
  • Sidekiq

← “Redis-এ বড় বস্তু মুছে ফেলা”-এ ফিরে যান


  1. কিভাবে সাজানো সেটের একটি উপাদানের র‍্যাঙ্ক পাবেন – Redis ZRANK | ZREVRANK

  2. Redis ZREVRANGE - কিভাবে Desc Rank Range দ্বারা সাজানো সেটের উপাদান পেতে হয়

  3. Redis ZRANGE – Asc Rank Range দ্বারা সাজানো সেটের উপাদানগুলি কীভাবে পাবেন

  4. রেডিস জেডকার্ড - রেডিস ডেটাস্টোরে সাজানো সেটের আকার কীভাবে পাবেন