AOF (Append Only File) রেডিসের একটি পার্সিস্টেন্স মেকানিজম, যা প্রতিটি রেডিস রাইট অপারেশনকে একটি ফাইলে অ্যাপেন্ড (যে কোন লেখা অপারেশন) করে রাখে। AOF রেডিস সার্ভারের ডেটা পার্সিস্টেন্স নিশ্চিত করতে ব্যবহৃত হয়, যাতে সার্ভার বন্ধ হলেও আপনার ডেটা সুরক্ষিত থাকে এবং পুনরুদ্ধার করা সম্ভব হয়।
এটি RDB (Redis Database Backup) থেকে ভিন্ন, কারণ AOF প্রতিটি লেখা অপারেশনকে ডিস্কে লিপিবদ্ধ করে এবং সার্ভারের পুনরুদ্ধারের সময় ডেটা পুনরুদ্ধারের জন্য ব্যবহার করা হয়।
AOF কনফিগারেশন পদ্ধতি
রেডিসের AOF সক্রিয় এবং কনফিগার করার জন্য রেডিসের কনফিগারেশন ফাইল (redis.conf) এ কিছু সেটিং পরিবর্তন করতে হবে। নিচে AOF কনফিগারেশন সম্পর্কে বিস্তারিত আলোচনা করা হলো:
১. AOF সক্রিয় করা
রেডিস কনফিগারেশন ফাইলে AOF সক্রিয় করতে, আপনাকে appendonly প্যারামিটারটি yes করতে হবে। এটি নিশ্চিত করবে যে, রেডিস প্রতিটি রাইট অপারেশনকে একটি ফাইলে লিখবে।
কমান্ড:
appendonly yes
এটি রেডিসকে নির্দেশ দেবে যে, ডেটার যেকোনো পরিবর্তন (যেমন SET, DEL, LPUSH ইত্যাদি) AOF ফাইলে রেকর্ড করা হবে।
২. AOF ফাইলের অবস্থান নির্ধারণ করা
আপনি AOF ফাইলের অবস্থান নির্ধারণ করতে পারেন। ডিফল্টভাবে, এটি রেডিসের কাজ করার ডিরেক্টরিতে appendonly.aof নামে ফাইল তৈরি হয়।
কমান্ড:
appendfilename "appendonly.aof"
এটি আপনাকে AOF ফাইলের নাম ও অবস্থান কনফিগার করতে সহায়তা করবে। আপনি আপনার পছন্দ অনুযায়ী ফাইলের নাম এবং পাথ পরিবর্তন করতে পারেন।
৩. AOF ফাইল সিঙ্ক করার পদ্ধতি নির্ধারণ করা
AOF ফাইল সিঙ্ক করার তিনটি পদ্ধতি রয়েছে: no, everysec, এবং always। আপনি appendfsync প্যারামিটার ব্যবহার করে এই পদ্ধতিগুলি নির্বাচন করতে পারেন।
- no: সিঙ্কিং করা হবে না। এটি রেডিসকে ডিস্কে লেখার জন্য অটো সিঙ্কিং নিশ্চিত করবে না।
- everysec: প্রতি সেকেন্ডে সিঙ্ক হবে। এটি সাধারণত প্রস্তাবিত পদ্ধতি।
- always: প্রতিটি অপারেশনের পরে সিঙ্ক হবে, যা ডিস্কের I/O সক্ষমতা কমাতে পারে।
কমান্ড:
appendfsync everysec # প্রতি সেকেন্ডে সিঙ্ক হবে
এটি সাধারণত everysec সেটিং প্রস্তাবিত, কারণ এটি ভালো পারফরম্যান্স এবং পার্সিস্টেন্স সমন্বয় করে।
৪. AOF পুনর্নির্মাণ (Rewrite) কনফিগারেশন
AOF ফাইলের আকার বাড়তে থাকে যতটা বেশি রাইট অপারেশন হবে। এই কারণে রেডিস AOF Rewrite সাপোর্ট করে, যা AOF ফাইলের আকার কমিয়ে এনে পুরনো অপারেশনগুলোকে একটি একক ফাইলে পুনর্লিখন করে।
- auto-aof-rewrite-percentage: এটি AOF ফাইল পুনর্নির্মাণের জন্য একটি শতাংশ নির্দেশ করে। উদাহরণস্বরূপ, 100 শতাংশ অর্থাৎ AOF ফাইলের আকার ডাবল হলে এটি পুনর্নির্মাণ শুরু করবে।
- auto-aof-rewrite-min-size: এটি AOF ফাইলের ন্যূনতম আকার নির্ধারণ করে, যাতে পুনর্নির্মাণ শুরু না হয় যতক্ষণ না ফাইল এই আকারে পৌঁছায়।
কমান্ড:
auto-aof-rewrite-percentage 100 # ফাইলের আকার 100% বেড়ে গেলে পুনর্লিখন হবে
auto-aof-rewrite-min-size 64mb # ফাইলের আকার অন্তত 64MB হওয়া উচিত
৫. AOF ফাইল বন্ধ করা
যদি আপনি AOF নিষ্ক্রিয় করতে চান, তাহলে appendonly প্যারামিটারটি no করতে হবে।
কমান্ড:
appendonly no
এটি AOF পদ্ধতিটি সম্পূর্ণভাবে বন্ধ করে দেবে, কিন্তু যদি AOF সিঙ্কিংয়ের কারণে আপনার ডেটা যদি কখনও ডিস্কে না লেখা হয়, তবে তা হারিয়ে যাবে।
৬. AOF এর নিরাপত্তা এবং পারফরম্যান্স
- ফাইল সিঙ্কিং:
everysecসিঙ্কিং পদ্ধতি অনেকাংশে ভাল পারফরম্যান্স প্রদান করে, কারণ এতে ডিস্ক I/O কম থাকে এবং ডেটার সুরক্ষাও থাকে। - পারফরম্যান্সের দিকে খেয়াল রাখুন: AOF-এ always সিঙ্কিং করলে অনেক বেশি ডিস্ক I/O সৃষ্টি হতে পারে, যা পারফরম্যান্সে নেতিবাচক প্রভাব ফেলতে পারে। সাধারণভাবে everysec ব্যবহারের পরামর্শ দেওয়া হয়।
৭. AOF থেকে ডেটা পুনরুদ্ধার
যখন রেডিস রিস্টার্ট করা হয়, তখন এটি AOF ফাইল থেকে সকল রাইট অপারেশন পুনরুদ্ধার করবে এবং সেগুলো আবার সিস্টেমে চালু করবে।
এটি নিশ্চিত করে যে, যদি সার্ভার ক্র্যাশ করে, তবে সর্বশেষ সফল রাইট অপারেশন পুনরুদ্ধার করা যাবে।
সারাংশ
- AOF (Append Only File) রেডিসের একটি শক্তিশালী পার্সিস্টেন্স মেকানিজম যা সমস্ত রাইট অপারেশনকে একটি ফাইলে সংরক্ষণ করে।
- AOF কনফিগার করার জন্য
redis.confফাইলেappendonly,appendfsync, এবংauto-aof-rewrite-*প্যারামিটারগুলি ব্যবহার করতে হয়। - AOF সিঙ্ক করার পদ্ধতি, পুনর্নির্মাণ, এবং সুরক্ষার মাধ্যমে আপনি রেডিস ডেটার পার্সিস্টেন্স এবং পারফরম্যান্স কাস্টমাইজ করতে পারবেন।
Read more