RDB (Redis Database Backup) স্ন্যাপশট হল রেডিসের একটি পার্সিস্টেন্স মেকানিজম যা নির্দিষ্ট সময় পর পর রেডিস ডেটাবেসের ডেটার স্ন্যাপশট তৈরি করে এবং সেই স্ন্যাপশট ডিস্কে সংরক্ষণ করে। এটি ডেটার ব্যাকআপ তৈরি করতে ব্যবহৃত হয়, যাতে ডেটা হারানো বা সার্ভার ক্র্যাশ হওয়ার পর পুনরুদ্ধার করা যায়।
RDB স্ন্যাপশট কনফিগারেশন সাধারণত রেডিস কনফিগারেশন ফাইল (redis.conf) দ্বারা পরিচালিত হয়।
RDB Snapshot কনফিগারেশন সেটিংস
RDB স্ন্যাপশট কনফিগার করার জন্য, আপনি redis.conf ফাইলটি কনফিগার করতে পারেন। নিচে কিছু প্রধান কনফিগারেশন প্যারামিটার দেওয়া হল যা RDB স্ন্যাপশট পরিচালনা করতে সাহায্য করে:
১. save প্যারামিটার
save প্যারামিটারটি নির্ধারণ করে যে কত সময় পর পর স্ন্যাপশট তৈরি হবে এবং কতটি রাইট অপারেশন হওয়া উচিত। এই প্যারামিটারটি একটি কমা দিয়ে পৃথক করা হয়, যেমন:
সিনট্যাক্স:
save <seconds> <changes>
ব্যাখ্যা:
- : সময় (সেকেন্ডে) যেখানে রেডিস স্ন্যাপশট তৈরি করবে।
- : এই সময়ের মধ্যে কতটি রাইট অপারেশন (SET, DEL, ইত্যাদি) ঘটতে হবে।
উদাহরণ:
save 900 1 # 900 সেকেন্ডে (15 মিনিট) 1টি রাইট অপারেশন হলে স্ন্যাপশট নেবে
save 300 10 # 300 সেকেন্ডে (5 মিনিট) 10টি রাইট অপারেশন হলে স্ন্যাপশট নেবে
save 60 10000 # 60 সেকেন্ডে 10000টি রাইট অপারেশন হলে স্ন্যাপশট নেবে
উপরের উদাহরণগুলোতে, আপনি দেখবেন যে:
- প্রথমে, 15 মিনিটে একটি পরিবর্তন হলে স্ন্যাপশট হবে।
- দ্বিতীয় উদাহরণে, 5 মিনিটে 10টি পরিবর্তন হলে স্ন্যাপশট হবে।
- তৃতীয় উদাহরণে, প্রতি মিনিটে 10000টি রাইট অপারেশন হলে স্ন্যাপশট তৈরি হবে।
২. dir প্যারামিটার
এই প্যারামিটারটি স্ন্যাপশট ফাইল সংরক্ষণের ডিরেক্টরি নির্ধারণ করে।
সিনট্যাক্স:
dir <directory_path>
উদাহরণ:
dir /var/lib/redis
এটি রেডিসের স্ন্যাপশট ফাইল /var/lib/redis ডিরেক্টরিতে সংরক্ষণ করবে।
৩. dbfilename প্যারামিটার
এই প্যারামিটারটি ডিফল্ট নাম dump.rdb দিয়ে স্ন্যাপশট ফাইলটির নাম নির্ধারণ করে।
সিনট্যাক্স:
dbfilename <filename>
উদাহরণ:
dbfilename mydb.rdb
এটি স্ন্যাপশট ফাইলের নাম হিসেবে mydb.rdb ব্যবহার করবে।
৪. rdbcompression প্যারামিটার
এই প্যারামিটারটি RDB ফাইল সঞ্চয় করার সময় ডেটা কম্প্রেস করার জন্য ব্যবহার করা হয়। এটি ডিফল্টভাবে yes থাকে, যা ডেটা কম্প্রেস করে সংরক্ষণ করে।
সিনট্যাক্স:
rdbcompression yes
আপনি যদি কম্প্রেশন বন্ধ করতে চান, তাহলে এটি no করতে পারেন:
rdbcompression no
৫. stop-writes-on-bgsave-error প্যারামিটার
এই প্যারামিটারটি নির্ধারণ করে যে, যদি স্ন্যাপশট তৈরি করার সময় কোনো সমস্যা হয়, তবে কি রেডিস রাইট অপারেশন বন্ধ করবে কিনা। ডিফল্টভাবে, এটি yes থাকে।
সিনট্যাক্স:
stop-writes-on-bgsave-error yes
যদি আপনি এটি পরিবর্তন করতে চান:
stop-writes-on-bgsave-error no
এটি স্ন্যাপশট তৈরির সময় কোনো ত্রুটি হলে, রাইট অপারেশন চালু রাখবে।
৬. appendonly প্যারামিটার
যদি আপনি AOF (Append Only File) ব্যবহার করতে চান, এটি yes করতে হবে। AOF ফাইল RDB স্ন্যাপশটের সাথে একত্রিত হতে পারে এবং ডেটার আরও ভাল পার্সিস্টেন্স সরবরাহ করে।
সিনট্যাক্স:
appendonly yes
RDB স্ন্যাপশট কনফিগারেশন উদাহরণ:
# স্ন্যাপশট ফাইল সঞ্চয় করার ডিরেক্টরি
dir /var/lib/redis
# স্ন্যাপশট ফাইলের নাম
dbfilename dump.rdb
# 15 মিনিট পর একটী পরিবর্তন হলে স্ন্যাপশট তৈরি হবে
save 900 1
# 5 মিনিটে 10টি পরিবর্তন হলে স্ন্যাপশট তৈরি হবে
save 300 10
# 1 মিনিটে 10000টি পরিবর্তন হলে স্ন্যাপশট তৈরি হবে
save 60 10000
# রেডিসের স্ন্যাপশট ফাইল কম্প্রেস করা হবে
rdbcompression yes
# স্ন্যাপশট তৈরির সময় কোনো সমস্যা হলে রাইট অপারেশন বন্ধ হবে
stop-writes-on-bgsave-error yes
RDB Snapshot কিভাবে ম্যানুয়ালি তৈরি করবেন
আপনি কখনও চাইলে ম্যানুয়ালি RDB স্ন্যাপশট তৈরি করতে পারেন। রেডিসের CLI থেকে BGSAVE কমান্ড ব্যবহার করে আপনি একটি ব্যাকগ্রাউন্ড প্রক্রিয়ায় স্ন্যাপশট তৈরি করতে পারেন।
BGSAVE
এটি ফনction call-এর মাধ্যমে একটি ব্যাকগ্রাউন্ড প্রসেস শুরু করবে যা স্ন্যাপশট তৈরি করবে।
সারাংশ
RDB (Redis Database Backup) স্ন্যাপশট হল রেডিসের পার্সিস্টেন্স মেকানিজম যা নির্দিষ্ট সময় পর পর ডেটার স্ন্যাপশট তৈরি করে। এটি redis.conf কনফিগারেশন ফাইলে save, dir, dbfilename, rdbcompression, এবং অন্যান্য প্যারামিটার ব্যবহার করে কনফিগার করা যায়। স্ন্যাপশট কনফিগারেশনের মাধ্যমে আপনি আপনার রেডিস ডেটাবেসের ব্যাকআপ কিভাবে তৈরি হবে তা নিয়ন্ত্রণ করতে পারেন।
Read more