রেডিস কনফিগারেশন ফাইল হল একটি গুরুত্বপূর্ণ ফাইল যা রেডিস সার্ভারের আচরণ কাস্টমাইজ করার জন্য ব্যবহার করা হয়। এই ফাইলটি রেডিস সার্ভারের পারফরম্যান্স, নিরাপত্তা, ডেটা পার্সিস্টেন্স, এবং অন্যান্য সেটিংস নিয়ন্ত্রণ করতে সহায়তা করে।
রেডিস কনফিগারেশন ফাইলটির নাম সাধারণত redis.conf এবং এটি সাধারণত /etc/redis/ বা /etc/ ডিরেক্টরিতে থাকে (এটি আপনার ইনস্টলেশন পদ্ধতির উপর নির্ভর করে)।
Redis কনফিগারেশন ফাইলের প্রধান উপাদান
রেডিস কনফিগারেশন ফাইলটি সাধারণত কমেন্ট আকারে অনেক বিস্তারিত তথ্য দেয়, এবং প্রতিটি সেটিংসের নিচে কিছু ব্যাখ্যা থাকে। এখানে কিছু গুরুত্বপূর্ণ কনফিগারেশন সেটিংস আলোচনা করা হলো:
১. ডেটা পার্সিস্টেন্স কনফিগারেশন
রেডিস ইন-মেমরি ডেটাবেস হলেও, এটি ডেটা পার্সিস্টেন্সের জন্য দুটি প্রধান পদ্ধতি ব্যবহার করে:
RDB (Redis Database Backup):
saveনির্দেশিকা ব্যবহার করে, আপনি কত সময় পর পর ডেটার স্ন্যাপশট নিতে চান তা নির্ধারণ করতে পারেন।save 900 1 # 900 সেকেন্ড (15 মিনিট) পর 1টি রাইট অপারেশন হলে স্ন্যাপশট নেওয়া হবে save 300 10 # 300 সেকেন্ড (5 মিনিট) পর 10টি রাইট অপারেশন হলে স্ন্যাপশট নেওয়া হবে save 60 10000 # 60 সেকেন্ড পর 10000টি রাইট অপারেশন হলে স্ন্যাপশট নেওয়া হবেAOF (Append Only File): আপনি যদি রেডিসের অপারেশনগুলো (যেমন SET, DEL) ডিস্কে লিপিবদ্ধ করতে চান, তাহলে AOF সক্ষম করতে হবে।
appendonly yes # AOF সক্ষম করা appendfsync everysec # প্রতি সেকেন্ডে AOF ফাইল সিঙ্ক করা
২. মেমরি ম্যানেজমেন্ট কনফিগারেশন
রেডিস মেমরি ব্যবস্থাপনায় খুবই কার্যকর। কিছু গুরুত্বপূর্ণ কনফিগারেশন প্যারামিটার:
maxmemory: আপনি রেডিস সার্ভারের জন্য সর্বোচ্চ মেমরি সীমা নির্ধারণ করতে পারেন। যখন এই সীমা পৌঁছাবে, রেডিস কিছু নীতি অনুসরণ করে পুরনো ডেটা মুছে ফেলবে।
maxmemory 256mb # সর্বোচ্চ 256MB মেমরি ব্যবহার করার জন্যmaxmemory-policy: মেমরি সীমা ছাড়িয়ে গেলে কিভাবে পুরনো ডেটা মুছে ফেলা হবে তা নির্ধারণ করতে পারেন। কিছু জনপ্রিয় পলিসি:
maxmemory-policy allkeys-lru # সব কিপেয়ার থেকে LRU (Least Recently Used) মুছে ফেলবে maxmemory-policy volatile-lru # শুধু মেমরি থেকে TTL সহ কিপেয়ার মুছে ফেলবে
৩. নেটওয়ার্ক কনফিগারেশন
রেডিস সার্ভারের নেটওয়ার্ক সেটিংস নিয়ন্ত্রণ করে:
bind: আপনি রেডিসকে নির্দিষ্ট IP ঠিকানা থেকে কেবল সংযোগ গ্রহণ করার জন্য কনফিগার করতে পারেন।
bind 127.0.0.1 # শুধুমাত্র লোকালহোস্ট থেকে সংযোগ গ্রহণport: রেডিস সার্ভারের পোর্ট নম্বর নির্ধারণ করতে:
port 6379 # ডিফল্ট পোর্ট 6379protected-mode: এটি নিরাপত্তার জন্য গুরুত্বপূর্ণ। ডিফল্টভাবে, রেডিস নিরাপত্তার জন্য প্রোটেক্টেড মোডে থাকে, যা শুধুমাত্র লোকালহোস্ট থেকে সংযোগ অনুমোদন করে।
protected-mode yes # প্রোটেক্টেড মোড সক্রিয়
৪. নিরাপত্তা কনফিগারেশন
রেডিসের নিরাপত্তা কনফিগারেশন গুরুত্বপূর্ণ, বিশেষত যখন এটি পাবলিক নেটওয়ার্কে চলে।
requirepass: রেডিস সার্ভারে পাসওয়ার্ড সেট করার জন্য:
requirepass yourpassword # পাসওয়ার্ড সেট করুনrename-command: আপনি কিছু কমান্ডকে পুনঃনামকরণ করতে পারেন যাতে আক্রমণকারীরা সহজে শনাক্ত না করতে পারে।
rename-command FLUSHDB "" # FLUSHDB কমান্ড নিষিদ্ধ করা
৫. লগিং এবং মনিটরিং
রেডিস লোগিং এবং মনিটরিংয়ের জন্য বিভিন্ন প্যারামিটার প্রদান করে।
loglevel: রেডিসের লগ স্তর সেট করা:
loglevel notice # লগ স্তর - notice, warning, or debuglogfile: লগ ফাইলের অবস্থান এবং নাম নির্ধারণ করতে:
logfile /var/log/redis/redis-server.log # লগ ফাইলের পাথ
৬. ক্লাস্টারিং কনফিগারেশন
রেডিস ক্লাস্টার ব্যবহার করতে চাইলে আপনাকে cluster-enabled প্যারামিটার সক্ষম করতে হবে।
cluster-enabled: ক্লাস্টার মডিউল সক্রিয় করতে:
cluster-enabled yes # ক্লাস্টারিং সক্ষমcluster-config-file: ক্লাস্টারের কনফিগারেশন ফাইলের নাম নির্ধারণ করতে:
cluster-config-file nodes.conf # ক্লাস্টারের জন্য কনফিগারেশন ফাইল
৭. টাইমআউট এবং সংযোগ সেটিংস
timeout: সংযোগের জন্য টাইমআউট নির্ধারণ করতে:
timeout 0 # 0 মানে কোন টাইমআউট নেইtcp-keepalive: টিসিপি সংযোগের জন্য কিপ-অ্যালিভ টাইম নির্ধারণ করতে:
tcp-keepalive 300 # 5 মিনিটের জন্য সংযোগ সক্রিয় থাকবে
৮. সেশন ম্যানেজমেন্ট কনফিগারেশন
রেডিস সাধারণত সেশন ম্যানেজমেন্টের জন্য ব্যবহার করা হয়। সেশনের মেয়াদ নির্ধারণ করা যেতে পারে।
expire: কিপেয়ারের জন্য একটি নির্দিষ্ট মেয়াদ নির্ধারণ করতে:
EXPIRE mykey 3600 # mykey-এর মেয়াদ 1 ঘণ্টা
সারাংশ
রেডিস কনফিগারেশন ফাইল (redis.conf) রেডিস সার্ভারের বিভিন্ন সেটিংস কাস্টমাইজ করতে সাহায্য করে, যেমন পার্সিস্টেন্স, মেমরি ম্যানেজমেন্ট, নেটওয়ার্ক সেটিংস, নিরাপত্তা কনফিগারেশন এবং ক্লাস্টারিং। এই ফাইলটি রেডিস সার্ভারের আচরণ নিয়ন্ত্রণ করতে গুরুত্বপূর্ণ এবং এটি আপনার প্রয়োজন অনুযায়ী কনফিগার করা উচিত।
Read more