Redis Cluster একটি ডিস্ট্রিবিউটেড রেডিস আর্কিটেকচার যা ডেটা পার্টিশনিং (Data Partitioning) বা শার্ডিং (Sharding) সমর্থন করে। এতে, রেডিসের ডেটা একাধিক নোডে ভাগ হয়ে থাকে এবং সার্ভারের লোডকে ভারসাম্যপূর্ণভাবে বিতরণ করে, ফলে সিস্টেমটি আরও স্কেলেবল এবং উচ্চ পারফরম্যান্সযোগ্য হয়।
রেডিস ক্লাস্টার ডেটা পার্টিশনিংয়ের জন্য মাল্টিপল শার্ড ব্যবহার করে। প্রতিটি শার্ড ক্লাস্টারের একটি নির্দিষ্ট অংশের ডেটা ধারণ করে। রেডিস ক্লাস্টারের মধ্যে ডেটা পার্টিশনিং করার জন্য, একটি নির্দিষ্ট hash slot ব্যবস্থা ব্যবহৃত হয়। এই পদ্ধতিতে:
Hash Slot Calculation: রেডিস ক্লাস্টারে ডেটার partitioning করার জন্য কিপেয়ারগুলিকে hash slots-এ ম্যাপ করা হয়। মোট 16,384 হ্যাশ স্লট থেকে একটি কিপেয়ার নির্বাচন করা হয় যেটি hash slot-এর মধ্যে থাকবে। কিপেয়ারের জন্য সঠিক hash slot পেতে, রেডিস একটি hashing algorithm ব্যবহার করে।
কিপেয়ারের জন্য সঠিক হ্যাশ স্লট নির্ধারণের জন্য, রেডিস CRC16 এলগরিদম ব্যবহার করে এবং তারপরে এটি 16,384 স্লটের মধ্যে একটি স্লটে ম্যাপ করে।
hash_slot = CRC16(key) % 16384
যদি আপনি রেডিস ক্লাস্টার তৈরি করতে চান, তাহলে কিছু সাধারণ কনফিগারেশন এবং স্টেপগুলো নিম্নরূপ হতে পারে:
Redis Cluster Nodes Setup: প্রথমে, কমপক্ষে তিনটি রেডিস সার্ভার (নোড) চালু করুন। প্রতিটি সার্ভারে redis.conf
ফাইলের মধ্যে cluster-enabled
অপশনটি yes
করতে হবে।
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
Redis Cluster Creation: একাধিক রেডিস সার্ভার প্রস্তুত করার পর, ক্লাস্টার তৈরি করতে redis-cli
ব্যবহার করুন। উদাহরণস্বরূপ:
redis-cli --cluster create <node1-ip>:6379 <node2-ip>:6379 <node3-ip>:6379 --cluster-replicas 1
Verifying Cluster Setup: ক্লাস্টার সফলভাবে তৈরি হলে, আপনি ক্লাস্টারের স্ট্যাটাস চেক করতে পারেন:
redis-cli -c -h <node-ip> -p 6379 cluster info
Handling Data Distribution: একবার ক্লাস্টার তৈরি হলে, আপনি যেকোনো কিপেয়ার সন্নিবেশ করতে পারেন এবং তা স্বয়ংক্রিয়ভাবে সঠিক হ্যাশ স্লট এবং নোডে বিতরণ হবে:
redis-cli -h <node-ip> -p 6379 SET key1 "value1"
Redis Cluster ডেটা পার্টিশনিংয়ের জন্য 16,384 hash slots ব্যবহার করে এবং এই স্লটগুলিকে বিভিন্ন নোডে বিতরণ করে। এটি ডেটার স্কেলেবিলিটি, লোড ব্যালেন্সিং এবং হাই অ্যাভেইলিবিলিটি নিশ্চিত করে। রেডিস ক্লাস্টার শার্ডিং এবং রিপ্লিকেশনকে একত্রিত করে ডিস্ট্রিবিউটেড সিস্টেম তৈরি করতে সহায়তা করে, যার মাধ্যমে আপনি রেডিস সার্ভারগুলির মধ্যে ডেটা সঠিকভাবে শেয়ার করতে পারেন এবং আরও স্কেলেবল অ্যাপ্লিকেশন তৈরি করতে সক্ষম হন।
Read more