দ্রুত ডেটা সংগ্রহের জন্য রেডিস এবং পিএইচপি দিয়ে শুরু করা

জনপ্রিয় রেডিস স্টোরেজ ইঞ্জিনটি কোনও সফ্টওয়্যার বিকাশকারীদের অস্ত্রাগারে একটি দুর্দান্ত এবং প্রয়োজনীয় সরঞ্জাম tool ইন-মেমরি স্টোরেজ ইঞ্জিনটি খুব দ্রুত স্টোরেজ এবং ডেটা পুনরুদ্ধারের জন্য প্রতি সেকেন্ডে একটি চিত্তাকর্ষক 32 মিলিয়ন ক্যোয়ারী মঞ্জুরি দেয়, এটি কোনও বড় ডেটাবেস ইঞ্জিনের প্রধান পরিপূরক করে তোলে।

আসুন ডুব দেই, এবং কীভাবে আমাদের অনলাইন ক্রিয়াকলাপকে ত্বরান্বিত করতে হয় তা শিখি।

রেডিস: প্রো বনাম কনস

রেডিসের সবচেয়ে বড় সুবিধাটি হ'ল এটি একটি সম্পূর্ণ মেমরির ডেটা স্টোর , যার অর্থ এটি অত্যন্ত স্পষ্টভাবে দ্রুত কারণ ডেটাবেসটি র‌্যামের মধ্যে সঞ্চিত থাকে তাই হার্ড ড্রাইভে কোনও ফাইল আই / ও অপারেশন প্রয়োজন হয় না।

অন্যান্য যুক্ত সুবিধাগুলি হ'ল এটির সরলতা, রেডিস-ক্লাস্টারের মাধ্যমে ক্লাস্টারিং সমর্থন, এবং আটটি পৃথক ডেটা ধরণের জন্য এর সমর্থন যা আপনাকে প্রয়োজনীয়ভাবে আপনার ডেটা সংরক্ষণ এবং পরিচালনা করার জন্য প্রয়োজনীয় নমনীয়তা সরবরাহ করে।

তবে এর সবচেয়ে বড় অবক্ষয় হ'ল এটি নিখুঁতভাবে একটি মেমরির ডেটা স্টোর, তাই আকারের সীমাবদ্ধতার সাথে আসে। এটি আপনার সার্ভার অবকাঠামোর উপর নির্ভর করে, তবে এই নিবন্ধ এবং সরলতার জন্য, আপনার সাধারণ রেডিস ডাটাবেসটিতে সর্বাধিক 2-4 জিবি ডেটা থাকবে।

এর অর্থ রেডিস মাইএসকিউএল, পোস্টগ্র্রেএসকিউএল এবং মঙ্গোডিবি এর মতো জনপ্রিয় ব্যবহৃত ডাটাবেস ইঞ্জিনগুলির প্রশংসা করতে ব্যবহৃত হয় এবং এটি প্রতিস্থাপন হিসাবে বোঝানো হয় না। রেডিসের প্রধান ব্যবহারগুলির মধ্যে একটি ক্যাশে, অস্থায়ী / সাম্প্রতিক ডেটা অন্তর্ভুক্ত হবে যা অল্প সময়ের মধ্যে শেষ হবে, বা ঘন ঘন অ্যাক্সেস করা ডেটার ছোট ছোট টুকরা।

কীভাবে রেডিস ইনস্টল করবেন

ধরে নিই যে আপনি উবুন্টু বা কোনও লিনাক্স ডিস্ট্রো চালাচ্ছেন যা অ্যাপ্ট গেট কমান্ড ধারণ করে, রেডিস ইনস্টল করতে কেবল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:

 sudo apt-get install redis-server

এরপরে, রেডিস সফলভাবে ইনস্টল হয়েছে তা নিশ্চিত করার জন্য চেক করুন। টার্মিনালের মধ্যে কমান্ডটি চালান:

 redis-cli --version

এটি আপনার চালিত রেডিসের সংস্করণটি মুদ্রণ করে এবং তাই ধরে নিলে, রেডিসের সাথে সংযোগ স্থাপনের জন্য নিম্নলিখিত কমান্ডটি চালনা করুন:

 redis-cli

এটি আপনাকে টার্মিনালের অভ্যন্তরে একটি অ-মানক রেডিস প্রম্পট দেবে, যা দেখতে এমন কিছু দেখাচ্ছে:

 127.0.0.1:6379>

স্ট্রিং কমান্ড

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

 127.0.0.1:6379> set full_name "John Doe"
127.0.0.1:6379> set units 5

আপনি বর্তমানে রেডিস ডাটাবেসের মধ্যে কী-র কমান্ড দিয়ে সমস্ত কি তালিকাভুক্ত করতে পারেন।

 127.0.0.1:6379> keys *

এর ফলে আপনি পূর্বে নির্ধারিত দুটি কীটি পুরো নাম এবং ইউনিট প্রদর্শন করবে । গেট কমান্ডের সাহায্যে আপনি এই কীগুলির মান দেখতে পাবেন।

 127.0.0.1:6379> get full_name
"John Doe"
127.0.0.1:6379> get units
5

কী মুছে ফেলা খুব সহজেই ডেল কমান্ড দিয়ে করা যায়।

 127.0.0.1:6379> del full_name

Hincrby কমান্ডের সাহায্যে দ্রুত কোনও পূর্ণসংখ্যা বৃদ্ধি করাও সম্ভব। নিম্নলিখিতগুলি "ইউনিটগুলি" কীটি 5 থেকে 7 এ বৃদ্ধি করবে।

 127.0.0.1:6379> incrby units 2

কমান্ড তালিকা

রেডিসে তালিকাগুলি একটি নির্দিষ্ট অর্ডার সহ এক-মাত্রিক অ্যারে এবং তালিকার বিভিন্ন অবস্থানের মধ্যে নকল আইটেমগুলির জন্য মঞ্জুরি দেয়। Lpush এবং rpush কমান্ডের সাহায্যে তালিকার বাম বা ডানদিকে আইটেম যুক্ত করা যেতে পারে।

 127.0.0.1:6379> lpush colors blue
127.0.0.1:6379> rpush colors red yellow green

উপরের উদাহরণ থেকে আপনি দেখতে পাচ্ছেন, আপনি একক কমান্ডের মধ্যে একাধিক আইটেমকে তালিকায় রাখতে পারেন। আমরা এখন লার্জ কমান্ডটি ব্যবহার করে তালিকার সমস্ত আইটেম দেখতে পারি।

 127.0.0.1:6379> lrange colors 0 -1

কমান্ডের শেষে দুটি পূর্ণসংখ্যা রয়েছে, প্রথমটি তালিকার মধ্যে অবস্থিত অবস্থানটি শুরু করার জন্য সংজ্ঞা দেয় এবং দ্বিতীয়টি সমস্ত আইটেম -1 অর্থ দিয়ে ফিরে আসা আইটেমের সংখ্যা। উপরের কমান্ডের ফলাফলটি হবে নীল, লাল, হলুদ, সবুজ

আপনি lpop এবং rpop কমান্ড ব্যবহার করে তালিকার উভয় প্রান্তে আইটেমগুলি সরিয়ে ফেলতে পারেন।

 127.0.0.1:6379> lpop colors
blue
127.0.0.1:6379> rpop colors
green

আপনি llen কমান্ডের সাহায্যে তালিকায় থাকা উপাদানের সংখ্যাও পেতে পারেন।

 127.0.0.1:6379> llen colors
(integer) 2

সর্বশেষে, আপনি তালিকা থেকে একটি উপাদান মুছে ফেলতে পারেন lrem কমান্ডের মাধ্যমে।

 127.0.0.1:6379> lrem colors 1 green
(integer) 1

Lrem কমান্ড তালিকার নাম দিয়ে শুরু হয়, তারপরে অপসারণের সংখ্যার সংখ্যা এবং মুছে ফেলার উপাদানটির নাম দিয়ে শুরু করা হয়। এটি তালিকা থেকে পাওয়া এবং অপসারণের সংখ্যার ফিরিয়ে দেবে।

হ্যাশ কমান্ড

রেডিসের অন্যতম জনপ্রিয় ডেটা হ্যাশগুলি হ'ল যা আপনাকে একক প্রবেশের মধ্যে একাধিক কী-মান জোড় সংরক্ষণ করতে দেয় store কীটি ইতিমধ্যে বিদ্যমান থাকার প্রয়োজন নেই এবং আপনি hset কমান্ডের সাহায্যে যে কোনও সময় কী-মান জোড়ার সংজ্ঞা দেন।

 127.0.0.1:6379> hset user:581 full_name "Jane Doe"
127.0.0.1:6379> hset user:581 points 500

আপনি hmset কমান্ড ব্যবহার করে একটি একক কমান্ডের মধ্যে হ্যাশের একাধিক কী-মান জোড়াকে সংজ্ঞায়িত করতে পারেন।

 127.0.0.1:6379> hmset user:581 email [email protected] gender F

মূল ব্যবহারকারী দ্বারা চিহ্নিত হ্যাশ : 581 এখন মোট চারটি কী-মান জোড় রয়েছে, এর সবগুলিই সহজেই হেইগল কমান্ডের সাহায্যে পুনরুদ্ধার করা যায়।

 127.0.0.1:6379> hgetall user:581
1) "full_name"
2) "Jane Doe"
3) "points"
4) "500"
5) "email"
6) "[email protected]"
7) "gender"
8) "F"

গেট কমান্ডটি ব্যবহার করে আপনি একটি হ্যাশের মধ্যে একক কী-মান জোড়ের মানও পেতে পারেন

 127.0.0.1:6379> hget user:581 email
"[email protected]"

হ্যাশের মধ্যে যে কোনও পূর্ণসংখ্যার জন্য, আপনি কোড হিনক্রি কমান্ডের সাহায্যে নির্দিষ্ট পরিমাণে এগুলি বৃদ্ধি করতে পারেন।

 127.0.0.1:6379> hincrby user:581 points 20
(integer) 520

হ্যাশের মধ্যে পয়েন্ট কীগুলির মান এখন 20 থেকে 520 বাড়ানো হয়েছে a এইচডিএল কমান্ডের সাহায্যে একটি হ্যাশের মধ্যে একটি একক কী-মান জুটি মুছতে পারে।

 127.0.0.1:6379> hdel user:581 gender

বিকল্পভাবে, আপনি ডেল কমান্ডটি ব্যবহার করে সমস্ত কী-মান যুক্তগুলি সহ সম্পূর্ণভাবে একটি হ্যাশ মুছতে পারেন।

 127.0.0.1:6379> del user:581

রেডিস কীগুলি সমাপ্ত হচ্ছে

Redis আরেকটি চমৎকার বৈশিষ্ট্যটি স্বয়ংক্রিয়ভাবে কমান্ড মেয়াদ শেষ ব্যবহার সেকেন্ডের একটি সংজ্ঞায়িত নম্বরের পরে কী মেয়াদ শেষ করার দক্ষতা। দয়া করে মনে রাখবেন, আপনি কেবলমাত্র কী বা মেয়াদ শেষ করতে পারেন, কোনও তালিকা বা হ্যাশের মধ্যে একক উপাদান নয়। উদাহরণ স্বরূপ:

 127.0.0.1:6379> expire full_name 10

এটি স্ট্রিং বিভাগে আপনার তৈরি পূর্ণ নাম কীতে 10 সেকেন্ডের মেয়াদোত্তীর্ণ সময় সেট করবে। উপরের কমান্ডটি চালানোর পরে, 10 সেকেন্ড অপেক্ষা করুন এবং আবার কীটির মান পুনরুদ্ধার করার চেষ্টা করুন।

 127.0.0.1:6379> get full_name
(nil)

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

পিএইচপি দিয়ে রেডিসের সাথে সংযুক্ত করুন

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

আপনাকে প্রথমে পিএইচপি-রেডিস এক্সটেনশনটি ইনস্টল করতে হবে কারণ এটি ডিফল্টরূপে ইনস্টল করা হয়নি। টার্মিনালের মধ্যে কমান্ডটি চালান।

 sudo apt-get install php-redis

একবার ইনস্টল হয়ে গেলে, পিএইচপি-এফএমপি পুনরায় চালু করতে ভুলবেন না যাতে এক্সটেনশানটি সঠিকভাবে লোড হয়। এখানে এমন কিছু পিএইচপি কোড রয়েছে যা রেডিসের সাথে সংযুক্ত হয় এবং ইন্টারফেস।

 <?php
// Connect to redis
$conn = new redis();
try {
$conn->connect('127.0.0.1', 6379, 5);
} catch (RedisException $e) {
die("Unable to connect to redis");
}
// Set string
$conn->set('country', 'Canada');
// Get string
$value = $conn->get('country');
echo "Country is: $value
";
// Define a profile
$profile = [
'username' => 'mike',
'full_name' => 'Mike Smith',
'email' => '[email protected]',
'country' => 'Australia'
];
// Create a hash
$conn->hmset('user:188', $profile);
// Get all values of the profile hash
$values = $conn->hgetall('user:188');
print_r($values);
// Get only the e-mail address
$email = $conn->hget('user:188', 'email');
echo "E-mail is: $email
";
// Expire the hash in 15 seconds
$conn->expire('user:188', 15);

উপরের উদাহরণ কোডটি বেশ সোজা এগিয়ে হওয়া উচিত। এটি প্রথমে 5 সেকেন্ডের টাইমআউট দিয়ে রেডিসের সাথে সংযোগ স্থাপন করে, তারপরে একটি স্ট্রিং এবং হ্যাশ সেট করে এগিয়ে যায়। সকল Redis কমান্ড মাধ্যমে সম্পাদনা করা যেতে পারে গলি তাদের Redis বস্তু থেকে সরাসরি কলিং উপরের হিসাবে exampled দ্বারা।

তুমি তোমার পথে!

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

দয়া করে মনে রাখবেন, এই নিবন্ধটি কেবলমাত্র খুব বেসিকগুলি জুড়েছে এবং রেডিস এবং এর সমস্ত কার্যকারিতা অন্বেষণ চালিয়ে যাওয়ার জন্য ডকুমেন্টেশনের রেডিস ডেটা টাইপ পৃষ্ঠাটি দুর্দান্ত জায়গা।