রেডিস একটি অত্যন্ত সরল কমান্ড লাইন ইন্টারফেস ব্যবহার করে। এর সহজতর স্বভāvের বাবजूद, এটি কিছু অপ্রত্যাশিত বৈশিষ্ট্য প্রদান করে। আসুন মৌলিক বিষয়গুলো জানি এবং ক্লায়েন্টের বেশিরভাগ কার্যকারিতা ও বৈশিষ্ট্যগুলোর দিকে যাই।
রেডিস সার্ভারের সাথে সংযোগ স্থাপন
শুরু করি একটি সাধারণ সংযোগ দিয়ে:
cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword
127.0.0.1:6379> PING
PONG
বাহ! আমরা আমাদের নিজস্ব রেডিস সার্ভারের সাথে সংযুক্ত হয়েছি এবং সুপার সিক্রেট পাসওয়ার্ড দিয়ে প্রমাণীকরণ করেছি।
বিকল্পভাবে, আপনি `-a` অপশন বাদ দিয়ে সংযোগের পরে প্রমাণীকরণ করতে পারেন:
cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> AUTH mysupersecretpassword
OK
127.0.0.1:6379> PING
PONG
যদি আপনার রেডিস সার্ভার এবং ক্লায়েন্ট একই মেশিনে চলে, তবে আপনি ইউনিক্স সকেটের মাধ্যমে সংযোগ করতে পারেন।
নোট: আপনি যদি হোস্টনেম এবং পোর্টের পাশাপাশি সকেটও দিয়ে থাকেন, তবে redis-cli সেটাও ইউনিক্স সকেটের মাধ্যমে সংযোগ করবে।
cweid@strange:~$ redis-cli -s /tmp/redis.sock
127.0.0.1:6379> AUTH mysupersecretpassword
OK
127.0.0.1:6379> PING
PONG
এখন যেহেতু আমরা কমান্ড লাইন থেকে রেডিস ইনস্ট্যান্সের সাথে সংযোগ ও প্রমাণীকরণের পদ্ধতি জানতে পারলাম, আসুন দেখি এর মাধ্যমে কী কী কার্যকর কাজ করা যায়।
কমান্ড লাইন থেকে সরাসরি কমান্ড চালানো
মান लीजিয়ে আপনি কমান্ড লাইন থেকে একটি কমান্ড চালাতে চান এবং শুধু আউটপুট স্ট্যান্ডার্ড আউটপুটে পেতে চান:
cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword PING
PONG
একই কমান্ড একাধিকবার চালানো
হয়তো আপনি একই কমান্ড n বার চালাতে চান:
cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword -r 4 PING
PONG
PONG
PONG
PONG
এখানে আমরা `-r` অপশন যোগ করেছি যা "রিপিট" অপশন সরবরাহ করে। বিকল্পভাবে, `-i` অপশন `-r` এর সাথে ব্যবহার করে ডিলে যোগ করা যায়।
cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword -i 1 -r 4 PING
PONG
PONG
PONG
PONG
এটি প্রতিটি PING কমান্ডের মধ্যে এক সেকেন্ডের 인터ভাল যোগ করে। আপনি ফ্লোট ভ্যালু ব্যবহার করে সাব-সেকেন্ডও নির্দিষ্ট করতে পারেন:
cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword -i 0.1 -r 4 PING
PONG
PONG
PONG
PONG
এটি প্রতি ০.১ সেকেন্ড পরপর PING কমান্ড চালাবে।
রেডিস ইনস্ট্যান্সের ডায়াগনস্টিক তথ্য (--stat)
আপনার সংযুক্ত রেডিস ইনস্ট্যান্সের সাধারণ ডায়াগনস্টিক তথ্য পেতে `redis-cli` কে `--stat` অপশন দিয়ে চালান।
cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword --stat
------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
0 790.80K 1 0 122 (+0) 16
0 790.80K 1 0 123 (+1) 16
0 790.80K 1 0 124 (+1) 16
0 790.80K 1 0 125 (+1) 16
0 790.80K 1 0 126 (+1) 16
এখানে আমরা দেখতে পাচ্ছি:
- সার্ভারে কতগুলো কি সেট আছে।
- সার্ভারের মোট মেমরি ব্যবহার।
- সংযুক্ত বা ব্লক করা মোট ক্লায়েন্ট সংখ্যা।
- সার্ভার কতগুলো রিকোয়েস্ট সার্ভ করেছে।
- বর্তমান মোট সংযোগ সংখ্যা।
এই কমান্ডটি রেডিস সার্ভারের সামগ্রিক ওভারভিউ পেতে উপকারী। এটাকে একটি ফাইলের `stat` কমান্ডের মতো চিন্তা করা যেতে পারে।
লেটেন্সি যাচাই (--latency)
এখন আসুন রেডিস কমান্ডের লেটেন্সি যাচাই করি। এটি খুব সহজ এবং কমান্ড লাইন থেকে করা যায়:
cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword --latency
min: 0, max: 1, avg: 0.13 (763 samples)
এখানে আমরা ন্যূনতম, সর্বোচ্চ এবং গড় রিকোয়েস্ট টাইম এবং নমুনার সংখ্যা দেখতে পাচ্ছি।
নোট: এগুলো মাইক্রোসেকেন্ডে রেকর্ড করা হয়েছে। রেডিস লেটেন্সি সম্পর্কে আরও জানতে লেটেন্সি মনিটরিং ডকুমেন্টেশন দেখুন।
বড় কি খুঁজে বের করা (--bigkeys)
আপনার কি-স্পেসে বড় স্ট্রিং বা অন্যান্য ডেটা স্ট্রাকচার খুঁজে বের করতে `--bigkeys` অপশন চালান। এটি কি-স্পেসে বড় কি খুঁজে বের করতে এবং কি টাইপের সামগ্রিক বন্টন জানতে সহায়তা করে।
cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword --bigkeys
# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type. You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).
[00.00%] Biggest string found so far 'user:paul' with 4 bytes
[00.00%] Biggest string found so far 'barrrr' with 19612 bytes
-------- summary -------
Sampled 4 keys in the keyspace!
Total key length in bytes is 29 (avg len 7.25)
Biggest string found 'barrrr' has 19612 bytes
4 strings with 19624 bytes (100.00% of keys, avg size 4906.00)
0 lists with 0 items (00.00% of keys, avg size 0.00)
0 sets with 0 members (00.00% of keys, avg size 0.00)
0 hashs with 0 fields (00.00% of keys, avg size 0.00)
0 zsets with 0 members (00.00% of keys, avg size 0.00)
এটি বিভিন্ন কি সম্পর্কে তাদের টাইপ ও আকারসহ অনেক উপকারী তথ্য ফেরত দেয়।
উপসংহার
সারাংশে, রেডিস CLI আপনার রেডিস ইনস্ট্যান্স ম্যানেজ করতে একটি শক্তিশালী টুল। এর বিল্ট-ইন অপশনগুলো একটি সমস্যা যুক্ত রেডিস সার্ভার বিশ্লেষণে খুব সাহায্য করতে পারে।