কম্পিউটার

রেডিসে বড় তালিকা মুছে ফেলা হচ্ছে

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

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

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

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

অনুগ্রহ করে মনে রাখবেন যে নিম্নলিখিত কোডটি রেডিস সংযোগ ব্যর্থতাগুলিকে সুন্দরভাবে পরিচালনা করে না। যদি কোন 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")

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

  • উত্তর
  • Sidekiq

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


  1. প্রবর্তন করা হচ্ছে RediSearch 2.0

  2. রেডিস লঞ্চপ্যাড পেশ করা হচ্ছে

  3. Redis.io রিফ্রেশ করা এবং প্রসারিত করা

  4. ফাস্টলি কম্পিউটে রেডিস ব্যবহার করুন