CentOS 8 - পার্ট 1 - এ পুনরায় প্রতিলিপি সেটআপ (ক্লাস্টার-মোড অক্ষম সহ) to


রেডিস (রিমোট ডিকশনারি সার্ভার) একটি খুব জনপ্রিয় এবং বহুল ব্যবহৃত ওপেন সোর্স, দ্রুত, বিতরণ এবং মেমরির কী-মান ডাটাবেস/ডেটা স্ট্রাকচার সার্ভার efficient

এটি এমন বৈশিষ্ট্যগুলির একটি সমৃদ্ধ সেট সরবরাহ করে যা বিবিধ ব্যবহারের ক্ষেত্রে এটি কার্যকর করে তোলে: একটি ডাটাবেস, ক্যাশে স্তর, বার্তা ব্রোকার বা সারি হিসাবে; ওয়েব অ্যাপ্লিকেশন, চ্যাট এবং বার্তাপ্রেরণ অ্যাপ্লিকেশন, গেমিং, রিয়েল-টাইম ডেটা বিশ্লেষণ এবং আরও অনেক ক্ষেত্রে কার্যকর in

এটি নমনীয় ডেটা স্ট্রাকচার, মাস্টার-স্লেভ অ্যাসিঙ্ক্রোনাস প্রতিলিপি সমর্থন ও পাঠ্য পারফরম্যান্স এবং ডেটা ক্ষতি থেকে রক্ষা করার জন্য ক্লায়েন্ট-সাইড শার্ডিং, স্কেল রাইটিং পারফরম্যান্সে মেমরি-ডেটা ইন ডিস্কে কমপ্যাক্ট ফর্ম্যাটে লেখার জন্য দৃ pers়তার দুটি ধরণ, ক্লাস্টারিং এবং বিভাজন। এটিতে রেডিস সেন্টিনেল, লুয়া স্ক্রিপ্টিং, লেনদেন এবং আরও অনেক কিছুর মাধ্যমে উচ্চ প্রাপ্যতা মোতায়েনের জন্য স্বয়ংক্রিয় ব্যর্থতা রয়েছে।

কোনও এসকিউএল বা অ-সম্পর্কযুক্ত ডাটাবেস হওয়ায় রেডিস প্রচলিত ডাটাবেস সিস্টেমগুলিতে (যেমন মাইএসকিউএল/মারিয়াডিবি, পোস্টগ্র্রেএসকিউএল, ইত্যাদি) কিছু কার্যকারিতা সুবিধা সরবরাহ করে কারণ এর সমস্ত ডেটা থাকে বা মেমরিতে সংরক্ষণ করে এটি কোনও অ্যাপ্লিকেশনে সহজেই অ্যাক্সেসযোগ্য হয়, যখন .তিহ্যগত ডাটাবেসগুলিতে সমস্ত ডেটা লিখতে হয় বা ডিস্ক বা বাহ্যিক উত্স থেকে পড়তে হয়।

রেডিস ক্যাশিংয়ের জন্য ক্রমবর্ধমান প্রচলিত পছন্দ হয়ে উঠেছে, যা প্রায়শই ব্যবহৃত ডেটার জন্য সর্বদা ডেটাবেস অনুসন্ধান করার পরিবর্তে ক্যাশেড ডেটা (কোনও অ্যাপ্লিকেশনের মূল মেমরির জায়গার মধ্যে সঞ্চিত) পুনরায় ব্যবহারের অনুমতি দেয়। সুতরাং চূড়ান্তভাবে অ্যাপ্লিকেশন কর্মক্ষমতা উন্নত করা এটি আরডিএমএসের (রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেমস) এর একটি দুর্দান্ত সঙ্গী।

এই তিন ভাগে রেডিস টিউটোরিয়াল সিরিজে, আমরা রেডিসের কিছু মূল বৈশিষ্ট্যগুলি কীভাবে সেট আপ করতে এবং ব্যবহার করব সেগুলি আবরণ করব, রেডিস সেন্টিনেল এবং রেডিস ক্লাস্টার ব্যবহার করে উচ্চ প্রাপ্যতা, নিবন্ধগুলি হ'ল:

এই গাইডটি দেখায় যে কীভাবে রেডিস ইনস্টল করবেন, মাস্টার এবং প্রতিলিপিগুলি কীভাবে কনফিগার করবেন এবং প্রতিলিপিটি পরীক্ষা করবেন সেগুলি সহ সেন্টোস 8 লিনাক্সে রেডিস রেপ্লিকেশন (ক্লাস্টার-মোড অক্ষম সহ) সেটআপ করবেন।

গুরুত্বপূর্ণ: একটি রেডিস ক্লাস্টার (যেমন একটি রেপ্লিকেশন ক্লাস্টার) ক্লাস্টার মোড অক্ষম রয়েছে যার একটি একক নোড গ্রুপ রয়েছে (যেমন একটি মাস্টার এবং এক বা দুটি প্রতিলিপি) ক্লিস্টার মোড সক্ষম রেডিস ক্লাস্টারে দুটি বা আরও নোড গ্রুপ থাকতে পারে (যেমন তিন মাস্টার) প্রত্যেকের দাস বা দু'জন রয়েছে)।

  1. CentOS 8 ইনস্টলেশন সহ সার্ভারগুলি

Redis Master Server: 10.42.0.247
Redis Replica1/Slave1: 10.42.0.21
Redis Replica2/Slave2: 10.42.0.34

উপরের সেটআপের সাথে (এতে একক পঠন/লেখার প্রাথমিক/মাস্টার নোড এবং ২ টি পঠনযোগ্য কেবল প্রতিরূপ নোড রয়েছে), আমাদের একটি নোড গ্রুপ রয়েছে যা প্রতিটি নোডে ক্লাস্টারের সমস্ত ডেটা থাকে। কোনও দাস কোনও মাস্টারের সাথে সংযোগ স্থাপন করার পরে, এটি সম্পূর্ণ ডাটাবেসের প্রাথমিক কপি পায় এবং স্লেভটিতে আগে থাকা কোনও ডেটা বাতিল করে দেওয়া হবে।

এছাড়াও, একজন ক্লায়েন্ট কেবল মাস্টারকেই লিখতে পারেন তবে ক্লাস্টারের কোনও নোড থেকে পড়তে পারেন। এবং যেমন মাস্টারের উপর লেখাগুলি সম্পাদিত হয়, তারা রিয়েল-টাইমে দাস ডেটাসেটগুলি আপডেট করার জন্য সমস্ত সংযুক্ত দাসদের কাছে প্রচার করেছিল।

পদক্ষেপ 1: সেন্টোস 8 এ রেডিস ইনস্টল করা

১. শুরু করতে, এসএসএইচ এর মাধ্যমে সমস্ত সেন্টোস ৮ নোডে লগইন করুন, তারপরে যেমন দেখানো হয়েছে তেমন ডিএনএফ প্যাকেজ ম্যানেজার ব্যবহার করে সমস্ত নোডে (মাস্টার এবং প্রতিলিপি) রেডিস প্যাকেজ ইনস্টল করুন।

# dnf install @redis

২. রেডিস প্যাকেজ ইনস্টলেশন সমাপ্তির পরে, রেডিস পরিষেবাটি চালু করুন, এটি প্রতিটি সিস্টেম বুটে স্বয়ংক্রিয়ভাবে শুরু করতে সক্ষম করুন এবং এটি নীচে অনুসরণ করে চলছে কিনা তা পরীক্ষা করুন।

# systemctl start redis
# systemctl enable redis
# systemctl status redis

৩. আপনি নীচের মত এসএস কমান্ড ব্যবহার করে শ্রুতি পোর্টগুলি পরীক্ষা করে রেডিস সার্ভারটি চালু এবং চলমান রয়েছে তাও নিশ্চিত করতে পারেন।

# ss -ltpn | grep redis-server

পদক্ষেপ 2: রেডিস মাস্টার সার্ভার কনফিগার করা

4. Redis /etc/redis.conf কনফিগারেশন ফাইল, একটি স্ব-ডকুমেন্টেড উদাহরণ কনফিগারেশন ফাইল ব্যবহার করে কনফিগার করা হয়েছে। প্রথমে আসল ফাইলটির ব্যাকআপ তৈরি করুন, তারপরে আপনার পছন্দের কমান্ড-লাইন সম্পাদকটি সম্পাদনা করার জন্য এটি খুলুন।

# cp /etc/redis.conf /etc/redis.conf.org
# vi /etc/redis.conf

৫. ডিফল্টরূপে, একটি রেডিস উদাহরণটি বাইন্ড নির্দেশিকা ব্যবহার করে লুপব্যাক ইন্টারফেসে সংযোগগুলি শুনতে এবং গ্রহণ করার জন্য কনফিগার করা হয়। প্রতিরূপগুলির সাথে যোগাযোগের জন্য, মাস্টারকে আইপিভি 4 লুপব্যাক ঠিকানা এবং তার ল্যান আইপি ঠিকানা অর্থাৎ 10.42.0.247 শুনতে কনফিগার করা উচিত ured

bind 127.0.0.1 10.42.0.247

Next. এরপরে, প্রতিরূপ দেখানো হিসাবে যোগাযোগের অনুমতি দেওয়ার জন্য সুরক্ষিত-মোড প্যারামিটারটিকে তে সেট করুন।

protected-mode no

এছাড়াও, রেডিস 63৩79৯ বন্দরটিতে শুনছে যা পোর্ট নির্দেশিকা ব্যবহার করে সেট করা হয়েছে। এটি অ্যাপ্লিকেশন এপিআই বা সি এল এল ক্লায়েন্টের সাথে যোগাযোগের জন্য ডেটা পোর্ট।

port 6379

Option. মাস্টার-রেপ্লিকা যোগাযোগগুলি optionচ্ছিকভাবে সুরক্ষিত করার জন্য, আমরা মাস্টারকে প্রয়োজনীয়পাস নির্দেশিকাটি ব্যবহার করে সুরক্ষা দিতে পারি, যাতে ক্লায়েন্ট/প্রতিরূপগুলি কোনও কমান্ড চালানোর আগে বা একটি প্রতিলিঙ্ক সিনক্রোনাইজেশন প্রক্রিয়া শুরু করার আগে একটি প্রমাণীকরণের পাসওয়ার্ড দিতে হয়, অন্যথায় মাস্টারটি প্রত্যাখ্যান করবে ক্লায়েন্ট/প্রতিলিপি অনুরোধ (একটি নিরাপদ পাসওয়ার্ড সেট করতে মনে রাখবেন)।

এটি কীভাবে কাজ করে তা দেখানোর জন্য আমরা নীচের বিকল্পটি প্রদর্শনের উদ্দেশ্যে ব্যবহার করব।

requirepass  [email 

৮. এছাড়াও, রেডিস লগগুলি /var/log/redis/redis.log ফাইলে সংরক্ষণ করা হয়, এটি লগফাইলে নির্দেশিকা ব্যবহার করে সেট করা হয় এবং লগলেভাল পরামিতি ব্যবহার করে সংজ্ঞায়িত করা হয় ডিফল্ট সার্ভার ভার্বোসিটি স্তর।

loglevel  notice
logfile  /var/log/redis/redis.log

৯. যেহেতু সেন্টডস 8 এ সেন্টোস 8 এ ডিফল্ট সিস্টেম এবং পরিষেবা ব্যবস্থাপক, তাই আপনি তত্ত্বাবধানে থাকা প্যারামিটারটিকে সিস্টেমডে সেট করে রেডিসকে সিস্টেমযুক্ত তদারকি গাছের সাথে ইন্টারেক্ট করার জন্য কনফিগার করতে পারেন।

supervised systemd

10. সমস্ত প্রয়োজনীয় কনফিগারেশন করার পরে, ফাইলটি সংরক্ষণ করুন এবং এটি বন্ধ করুন। তারপরে নতুন পরিবর্তনগুলি প্রয়োগ করতে রেডিস পরিষেবাটি পুনরায় চালু করুন।

# systemctl daemon-reload
# systemctl restart redis

১১. রেডিস সার্ভারটি অ্যাক্সেস করার জন্য আমাদের রেডিস-ক্লিপ (রেডিস-সার্ভারের একটি কমান্ড-লাইন ইন্টারফেস) ব্যবহার করতে হবে। ডিফল্টরূপে, এটি লোকালহোস্টের সার্ভারের সাথে সংযোগ স্থাপন করে (127.0.0.1 পোর্ট 6379 এ)। মনে রাখবেন যে সার্ভারটি পাসওয়ার্ড ব্যবহার করে ক্লায়েন্টদের কাছ থেকে সুরক্ষিত, প্রমাণীকরণের আগে একটি কমান্ড চালানো ব্যর্থ হওয়া উচিত।

নিম্নলিখিত স্ক্রিনশটের মত প্রমাণীকরণের পাসওয়ার্ড সরবরাহ করতে auth কমান্ডটি ব্যবহার করুন।

# redis-cli
127.0.0.1:6379> client list
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379> client list

১২. একটি প্রতিরূপে সংযোগ স্থাপনের জন্য (পরবর্তী বিভাগে বর্ণিত হিসাবে সেগুলি কনফিগার করার পরে), রেপ্লিকা আইপি ঠিকানা/হোস্টনেম নির্দিষ্ট করার জন্য -h এবং -p বিকল্পগুলি ব্যবহার করুন এবং বন্দর যথাক্রমে (that 6379৯ পোর্টটি অবশ্যই প্রতিরূপের ফায়ারওয়ালে খোলা থাকতে হবে)।

# redis-cli -h 10.42.0.21 -p 6379

১৩. এরপরে, মাস্টারকে ইনবাউন্ড সংযোগের জন্য ফায়ারওয়ালে রেডিস সার্ভার ডেটা পোর্টটি খুলুন এবং পরবর্তীকালে ফায়ারওয়াল-সেমিডি কমান্ডটি ব্যবহার করে ফায়ারওয়াল বিধিগুলি পুনরায় লোড করুন।

# firewall-cmd --zone=public --permanent --add-port=6379/tcp 
# firewall-cmd --reload

পদক্ষেপ 3: রেডিস প্রতিলিপি/স্লেভ সার্ভার কনফিগার করা

১৪. দ্রুত ফ্লাইতে রেডিস উদাহরণটি প্রতিরূপ হিসাবে সেট করতে, রেডিস-ক্লাইপ ইউটিলিটিটি ব্যবহার করুন এবং যেমন দেখানো হয়েছে তেমন রেপ্লিকাফো কমান্ড কল করুন।

# redis-cli replicaof 10.42.0.247 6379
OR
# redis-cli
127.0.0.1:6379> REPLICAOF 10.42.0.247 6379

15. একটি রেপ্লিকেশন সংযোগ স্থায়ী করতে, আপনার কনফিগারেশন ফাইলে নিম্নলিখিত পরিবর্তনগুলি করতে হবে। মূল ফাইলটি ব্যাক আপ করে শুরু করুন, তারপরে এটি সম্পাদনার জন্য খুলুন।

# cp /etc/redis.conf /etc/redis.conf.org
# vi /etc/redis.conf

16. ক্লায়েন্টদের ডাটা পড়ার জন্য প্রতিরূপে সংযুক্ত হওয়ার অনুমতি দেওয়ার জন্য, প্রতিস্থাপনের আইপি ঠিকানাটি বাইন্ড নির্দেশিকায় যুক্ত করুন।

# replica1
bind 127.0.0.1 10.42.0.21

# replica2
bind 127.0.0.1 10.42.0.34

17. একটি রেডিস উদাহরণটি প্রতিরূপ হিসাবে কনফিগার করতে, প্রতিলিপি পরামিতি ব্যবহার করুন এবং মাস্টার নোডের আইপি ঠিকানা (বা হোস্টনাম) এবং মান হিসাবে পোর্ট সেট করুন।

replicaof 10.42.0.247 6379

18. এর পরে, যেহেতু আমাদের মাস্টার দৃষ্টান্তটি একটি পাসওয়ার্ড ব্যবহার করে সুরক্ষিত রয়েছে, তাই মাস্টেরুথ প্যারামিটারটি ব্যবহার করে, মাস্টারকে প্রমাণীকরণ করতে সক্ষম করার জন্য আমাদের প্রতিরূপ কনফিগারেশনে পাসওয়ার্ডটি সেট করতে হবে।

masterauth [email 

19. তদ্ব্যতীত, যখন কোনও প্রতিলিপি মাস্টারের সাথে তার সংযোগ হারিয়ে ফেলেছে বা যখন অনুলিপিটি চলছে তখন, সম্ভবত প্রতিবেদনের ক্লায়েন্টের অনুরোধগুলির জবাব দিতে কনফিগার করা হয়েছে, সম্ভবত "মেয়াদোত্তীর্ণ" ডেটা রয়েছে। তবে এটি যদি প্রথম সিঙ্ক্রোনাইজেশন হয় তবে ডেটা সেটটি খালি থাকতে পারে। এই আচরণটি প্রতিলিপি-পরিবেশন-বাসি-ডেটা প্যারামিটার দ্বারা নিয়ন্ত্রিত হয়।

এবং, যেহেতু ডিফল্টরূপে রেডিস ২.6 প্রতিলিপিগুলি কেবল পঠনযোগ্য, তাই এটি কেবল প্রতি-পঠনযোগ্য পরামিতি দ্বারা নিয়ন্ত্রিত হয়। আপনি আপনার অ্যাপ্লিকেশন প্রয়োজন অনুসারে অন্যান্য রেপ্লিকা কনফিগারেশন সামঞ্জস্য করতে পারেন।

20. একবার আপনি সমস্ত প্রয়োজনীয় পরিবর্তনগুলি করার পরে, সমস্ত প্রতিরূপে রেডিস পরিষেবাটি পুনরায় চালু করুন।

# systemctl restart redis

21. এছাড়াও, মাস্টার এবং ক্লায়েন্টদের থেকে প্রতিরূপগুলিতে সংযোগ স্থাপনের জন্য ফায়ারওয়ালে 79৩79৯ খুলুন এবং ফায়ারওয়াল বিধিগুলি পুনরায় লোড করুন।

# firewall-cmd --zone=public --permanenent --add-port=6379/tcp
# firewall-cmd --reload

পদক্ষেপ 4: মাস্টার-প্রতিরূপের প্রতিরূপ স্থিতি পরীক্ষা করুন

22. একবার মাস্টার-প্রতিলিপি প্রতিলিপি কনফিগারেশন সম্পূর্ণ হয়ে গেলে, আমরা নীচের মত সেট আপটি ঠিকঠাকভাবে কাজ করছে কিনা তা পরীক্ষা করতে পারি।

মাস্টারে, নিম্নলিখিত কমান্ডগুলি চালান।

# redis-cli
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379> info replication

23. এছাড়াও, প্রতিরূপ/দাসদের প্রতিরূপ স্থিতি নীচে হিসাবে পরীক্ষা করুন।

# redis-cli
127.0.0.1:6379> info replication

23. এখন মাস্টার ইভেন্টে একটি মূল-মান সেটিংসের মাধ্যমে প্রতিরূপের পরীক্ষা করা যাক এবং ডেটাগুলি প্রতিরূপে সিঙ্ক করা হয়েছে কিনা তা পরীক্ষা করে দেখুন।

মাস্টারের উপর, এটি করুন:

# redis-cli
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379> set domain 'linux-console.net'

24. তারপরে দেখানো হয়েছে যে ডেটা প্রতিরূপে প্রদর্শিত হয়েছে হিসাবে সিঙ্ক হয়েছে কিনা।

# redis-cli
127.0.0.1:6379> get domain

25. রেডিসের একটি বৈশিষ্ট্য রয়েছে যা পর্যাপ্ত প্রতিলিপি নির্দিষ্ট সেকেন্ডে উপলব্ধ না হলে ক্ষেত্রে কিছু লেখার হারানোর ঝুঁকি সীমাবদ্ধ করতে একটি মাস্টার উদাহরণকে সক্ষম করে।

এর অর্থ হ'ল এম-সেকেন্ডের চেয়ে কম ল্যাগ বা সমান হ'ল যথাক্রমে মিনি-রেপ্লিকাস-টু-রাইটিং এবং মিনি-রেপ্লিকাস-ম্যাক্স-ল্যাগ অপশন দ্বারা নিয়ন্ত্রিত হিসাবে কোনও মাস্টার যদি এন-র প্রতিরূপ কম সংযুক্ত থাকে তবে লেখাগুলি গ্রহণ করা বন্ধ করতে পারে।

সেগুলি সেট করতে, সেগুলি নিরবিচ্ছিন্ন করুন এবং /etc/redis.conf এ আপনার সেটআপ প্রয়োজনীয়তা অনুসারে মানগুলি সেট করুন, যেমন নীচের স্ক্রিনশটটিতে দেখানো হয়েছে। এই কনফিগারেশনটির অর্থ হ'ল, শেষ পিং থেকে প্রতিরূপ, 10 সেকেন্ডের পরে, অনলাইনে 2 টিরও কম প্রতিলিপি থাকলে, মাস্টার লেখাগুলি গ্রহণ করা বন্ধ করে দেবেন।

min-replicas-to-write 2
min-replicas-max-lag 10

আপনি /etc/redis.conf কনফিগারেশন ফাইলের বাকি অংশে এবং রেডিস ডকুমেন্টেশনের অনুলিপি সম্পর্কে আরও বিশদে পড়তে আরও বিকল্পগুলি পেতে পারেন।

পরের নিবন্ধে, আমরা সেন্টোস ৮-এ সেন্টিনেলের সাথে কীভাবে উচ্চ প্রাপ্যতার জন্য রেডিস সেট আপ করতে হবে তা কভার করব then ততক্ষণ আপনি লক থাকুন এবং নীচে আমাদের মন্তব্য ফর্মটি ব্যবহার করে আপনার চিন্তাবিদ এবং প্রশ্নগুলি ভাগ করে নেওয়ার কথা মনে রাখবেন আপনি আমাদের কাছে পৌঁছানোর জন্য এখানে রয়েছে।