রেডিস কি?
রেডিস হল এক ধরনের ইন-মেমরি ডাটাবেস যাতে আপনি ব্যবহার করতে পারেন এমন বিভিন্ন ধরণের ডেটা স্ট্রাকচার রয়েছে৷
লাইক :
- কী / মান সঞ্চয়স্থান
- তালিকা
- সেট
এটির সাথে আপনার সাধারণ SQL ডাটাবেসের কোন সম্পর্ক নেই, যেমন Postgres.
Redis-এর জন্য ব্যবহার অন্তর্ভুক্ত :
- ক্যাশিং
- লিডারবোর্ড
- দর্শক গণনা
- দ্রুত স্বয়ংসম্পূর্ণ পরামর্শ
- সক্রিয় ব্যবহারকারী সেশনের ট্র্যাক রাখা
- কাজ এবং বার্তা সারি
চলুন দেখে নেই কিভাবে আপনি আপনার রুবি অ্যাপ্লিকেশনে রেডিস ব্যবহার করতে পারেন!
স্থানীয়ভাবে Redis ইনস্টল করা হচ্ছে
প্রথম:
আপনাকে Redis সার্ভার ইন্সটল করতে হবে।
ঠিক যেমন আপনি অন্য কোনো ডাটাবেস ইনস্টল করবেন।
আপনি যদি উবুন্টু চালান, তাহলে আপনি apt install redis-server
ব্যবহার করতে পারেন , Mac এ আপনি brew install redis
ব্যবহার করতে পারেন এবং Windows 10-এ আপনার প্রয়োজন হবে "লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেম" (নির্দেশের জন্য ক্লিক করুন)।
সার্ভার চালু হয়ে গেলে আপনি redis-cli
ব্যবহার করতে পারবেন সার্ভারের সাথে সংযোগ করতে।
দ্রষ্টব্য :আপনাকে
redis-server
চালাতে হতে পারে অন্য টার্মিনালে সার্ভার শুরু করার আগে আপনি এটিতে সংযোগ করতে পারেন।
এখন আপনি রেডিস ব্যবহার শুরু করতে প্রস্তুত!
Redis Gems ব্যবহার করা
আপনি redis-cli
ব্যবহার করে সরাসরি রেডিসের সাথে যোগাযোগ করতে পারেন , কিন্তু আপনি যদি রুবি থেকে রেডিসের সাথে কাজ করতে চান তবে আপনাকে একটি রত্ন ব্যবহার করতে হবে।
কিছু রত্ন পাওয়া যায় :
- oxblood
- redic
- redis-rb
কিন্তু রেডিস ডেভেলপারদের দ্বারা আনুষ্ঠানিকভাবে শুধুমাত্র একটি সুপারিশ করা হয়, redis-rb
.
এটি ইনস্টল করুন৷ :
মণি ইনস্টল redis
রত্ন ইনস্টল করার সাথে, আপনি আপনার Redis সার্ভারের সাথে সংযোগ করতে পারেন এবং এটির সাথে কাজ শুরু করতে পারেন৷
একটি কী যোগ করে শুরু করা যাক, a
, 1
এর মান সহ .
এখানে কোডটি আছে :
'redis'redis =Redis.new(হোস্ট:"localhost")redis.set("a", 1)# "OK"redis.get("a")# "1"
এই রত্নটি রেডিস কমান্ডগুলিতে রুবি পদ্ধতিগুলি ম্যাপ করার ক্ষেত্রে একটি ভাল কাজ করে, তাই আপনি যদি জানতে চান যে কোন কমান্ডগুলি উপলব্ধ রয়েছে আপনি রেডিস ডকুমেন্টেশন পরীক্ষা করতে পারেন, অথবা আপনি রত্ন ডকুমেন্টেশন পরীক্ষা করতে পারেন৷
ডকুমেন্টেশনের সাথে কাজ করা
আপনি একটি নির্দিষ্ট কমান্ডের নাম টাইপ করতে পারেন, অথবা ডেটা স্ট্রাকচার দ্বারা অনুসন্ধান করতে পারেন .
"গ্রুপ দ্বারা ফিল্টার করুন" এ ক্লিক করুন এবং "স্ট্রিংস" নির্বাচন করুন, তারপর এটি পরীক্ষা করার জন্য একটি কমান্ড বেছে নিন।
উদাহরণস্বরূপ, আপনি incr
ব্যবহার করতে পারেন কমান্ড:
redis.incr("a")# "2"
অথবা আপনি setex
দিয়ে একটি স্বয়ংক্রিয় মেয়াদ শেষ হওয়া কী সেট করতে পারেন :
redis.setex("বেকন", 10, 100)
যেখানে 2য় আর্গুমেন্টটি এই কীটির মেয়াদ শেষ হওয়ার কয়েক সেকেন্ড আগে এবং শেষ আর্গুমেন্টটি এই কীটির মান।
উদাহরণ :
redis.get("bacon")# "100"
10 সেকেন্ড পর…
redis.get("বেকন")# শূন্য
অন্বেষণ এবং অন্যান্য কমান্ড চেষ্টা করে মজা নিন!
কিভাবে Redis-এ সাজানো সেট ব্যবহার করবেন
Redis সাধারণ কী/মান সঞ্চয়স্থানে সীমাবদ্ধ নয়।
এটি কিছু শক্তিশালী ডেটা স্ট্রাকচার অফার করে।
সাজানো সেটের মত।
এটি আপনাকে প্রদত্ত মান অনুসারে সাজানো অনন্য আইটেমগুলির একটি তালিকা তৈরি করতে দেয়৷ . রেডিস ডকুমেন্টেশনে মানটিকে "স্কোর" বলা হয়।
আপনি এই সেটের শীর্ষ এন আইটেম পেতে প্রশ্ন করতে পারেন।
তাই এটি একটি লিডারবোর্ডের জন্য উপযুক্ত!
উদাহরণ :
redis.zadd("popular_fruit", 10, "apple")# trueredis.zadd("popular_fruit", 20, "banana")# trueredis.zadd("জনপ্রিয়_ফল", 30, "কমলা")# সত্যপ্রে>এখন যেহেতু আমাদের সেট আছে, আমরা উপরের আইটেমটির জন্য প্রশ্ন করতে পারি:
r.zrevrange("popular_fruit", 0, 0)# ["কমলা"]এই আদেশ বলছে :
"সর্বোচ্চ র্যাঙ্ক (0) থেকে শুরু করে, আমাকে শীর্ষ আইটেম দিন।"
যদি আপনি সবকিছু চান, ক্রমানুসারে :
r.zrevrange("popular_fruit", 0, -1)# ["কমলা", "কলা", "আপেল"]"zrevrange" এর "rev" অংশটি লক্ষ্য করুন, যার অর্থ বিপরীত এবং এটি আপনাকে অবরোহণ ক্রমে আইটেম দেবে .
আপনি যদি "zrange" ব্যবহার করেন তবে আপনি আরোহী ক্রমে আইটেমগুলি পাবেন৷ .
সাজানো সেট লিডারবোর্ডের বাইরে যায়!
আরেকটি জিনিস যা আপনি করতে পারেন তা হল একটি দ্রুত স্বয়ংসম্পূর্ণ ইঞ্জিন তৈরি করা
৷ZRANGEBYLEX
এর সাথে আদেশ৷আরো সেট অপারেশনের জন্য ডকুমেন্টেশন পড়ুন.
কী, মান এবং নেমস্পেসিং বোঝা
কোন কলাম নেই, কোন টেবিল নেই, সবকিছুই একটি প্লেইন নেমস্পেস।
তাহলে আপনি কীভাবে আপনার ডেটা সংগঠিত করতে পারেন?
আপনি কী নাম নিজেই ব্যবহার করতে পারেন।
একটি সাধারণ নিয়ম হল একটি কোলন (
:
) ব্যবহার করা ) জেনেরিক নাম এবং সেই নামের নির্দিষ্ট অংশ আলাদা করতে।এখানে একটি উদাহরণ আছে :
redis.set("fruit:1", "apple")# OKredis.set("fruit:2", "banana")# ঠিক আছেএই কনভেনশন সম্পর্কে বিশেষ কিছু নেই, রেডিস (সফ্টওয়্যার) জন্য একটি কী কোলন সহ এটি ছাড়া একটি কী থেকে আলাদা নয়৷ , কিন্তু আপনার জন্য (একজন বন্ধুত্বপূর্ণ রুবি বিকাশকারী) এটি আপনাকে আপনার ডেটা সংগঠিত করতে সহায়তা করে৷
৷Redis-এ ডেটা স্থিরতা
ডিফল্টরূপে রেডিস একটি নিয়মিত ডাটাবেসের মতো আপনার করা প্রতিটি অপারেশন সংরক্ষণ করে না।
আপনি যখন সার্ভার বন্ধ করেন তখন এটি শুধুমাত্র ডিস্কে ডেটা সংরক্ষণ করে৷
অথবা এই অবস্থার অধীনে :
- 15 মিনিট পরে, যদি 1 বা তার বেশি কী পরিবর্তন করা হয়
- 5 মিনিট পরে, যদি 10 বা তার বেশি কী পরিবর্তন করা হয়
- 1 মিনিট পরে, যদি 10,000 বা তার বেশি কী পরিবর্তন করা হয়
এটি একটি dump.rdb
তৈরি করে বর্তমান ডিরেক্টরিতে ফাইল।
আপনি যদি রিডিস অধ্যবসায়কে আরও একটি SQL ডাটাবেসের মতো আচরণ করতে চান তবে আপনি "অনলি মোড যোগ করুন" সক্ষম করতে পারেন, যা প্রতি সেকেন্ডের পরে পরিবর্তনগুলি সংরক্ষণ করবে৷
রেডিস কনফিগারেশনে এই লাইনটি যোগ করে (বা মন্তব্য না করে) এই মোডটি সক্ষম করুন:
শুধুমাত্র হ্যাঁ
একটি রেল ক্যাশে হিসাবে Redis ব্যবহার করা
Rails 5.2 থেকে আপনি Redis কে আপনার ক্যাশে স্টোর হিসাবে ব্যবহার করতে পারেন।
আপনার শুধুমাত্র redis
দরকার মণি এবং সার্ভার।
এটি সক্ষম করতে৷ :
# config/environments/production.rbRails.application.configure do config.cache_store =:redis_cache_store, { url:"redis://localhost:6379/0" }শেষ
তারপর রেল তার সমস্ত ক্যাশিং প্রয়োজনের জন্য রেডিস ব্যবহার করবে৷
আপনি ক্যাশেও কিছু সঞ্চয় করতে পারেন৷ :
Rails.cache.write("a", 1)# "OK"Rails.cache.read("a")# 1
রেলগুলি এইরকম দেখতে মানগুলি সঞ্চয় করে৷ :
"\u0004\bo:ActiveSupport::Cache::Entry\t:\v@valuei\u0006:\r@version0:\u0010@created_atf\u00171555005228.7954454:\u0010_in>"@expireএর মানে হল যে আপনি যেকোন সিরিয়ালাইজেবল রুবি অবজেক্ট সংরক্ষণ করতে পারেন, যেমন একটি
ActiveRecord
এর ফলাফল প্রশ্ন।Redis F.A.Q
“আমি কি আমার রেডিস সার্ভারে সমস্ত কী তালিকাভুক্ত করতে পারি?”
হ্যাঁ,
keys
ব্যবহার করে অথবাscan
কমান্ড, কিন্তু এটি সুপারিশ করা হয় না কারণ এটি খুব ধীর, বিশেষ করে আপনার ডাটাবেস বৃদ্ধির সাথে সাথে।“আমি কখন রেডিস ব্যবহার করব?”
শুধুমাত্র যখন এটি আপনার ব্যবহারের ক্ষেত্রে বোঝা যায়। এর মানে হল যে আপনি আপনার কোড সম্পর্কে যুক্তি সহজ করতে Redis ডেটা স্ট্রাকচারের সুবিধা নিতে পারেন।
আপনি রেডিস ব্যবহার করতে চান না কারণ এটি দুর্দান্ত বা জনপ্রিয়৷
৷এটি ব্যবহার করুন যখন এটি অন্য সমাধানগুলির চেয়ে ভালভাবে একটি সমস্যার সমাধান করে৷
"কিভাবে আমি রেডিসকে দ্রুততর করতে পারি?"
hiredis
ইনস্টল করুনredis-rb
এর উপরে রত্ন সর্বোচ্চ পারফরম্যান্সের জন্য।সারাংশ
আপনি Redis সম্পর্কে শিখেছেন, একটি দ্রুত ইন-মেমরি ডাটাবেস যা সঠিক পরিস্থিতিতে, যেমন ক্যাশিং, গণনা এবং সারিগুলিতে খুব সহায়ক হতে পারে৷
আপনি যদি এই নিবন্ধটি আকর্ষণীয় মনে করেন তবে অনুগ্রহ করে এটি শেয়ার করুন যাতে আরও বেশি মানুষ এটি উপভোগ করতে পারে৷
পড়ার জন্য ধন্যবাদ!