পুরো ওয়েব সার্ভারটি পুনরায় আরম্ভ না করে কীভাবে পুনরায় আরম্ভ / মেমক্যাচ করবেন?


47

/opt/eduserver/eduserver আমাকে বিকল্প দেয়:

ব্যবহার: / অপ্ট / এডুসারবার / এডুসারবার {স্টার্ট | স্টপ | স্টার্টফ্প | স্টার্টউইউ | স্টার্টোও | স্টপ্প্প | স্টপলইউ | স্টপোও | পুনঃসূচনা | পুনঃসূচনা www. পুন: সূচনা | পুনঃসূচনা | পুনরায় লোড

যেখানে মেমক্যাশে পিএইচপি মডিউল আছে memcache.iniমধ্যে /opt/eduserver/etc/php/conf.d।

আমি কমান্ড লাইন থেকে মেমক্যাশটি সাফ করতে চাই। আমি কি ওয়েব সার্ভারের অন্য কোনও অংশকে 'স্পর্শ' না করে কোনওভাবে এটি করতে পারি?

উত্তর:


94

হ্যাঁ. আপনি মেমকেচে সাফ করতে পারেন। চেষ্টা করে দেখুন:

telnet localhost 11211
flush_all
quit

যদি মেমচিচি লোকালহোস্ট 11211 এ না চালায় তবে আপনাকে এটি সামঞ্জস্য করতে হবে।


3
আমি কি ইন্টারঅ্যাকটিভভাবে এটি করতে পারি?
— রাদেক

2
আমি এটি যাচাই করার চেষ্টা করছিলাম বাস্তবে এটি কার্যকর ছিল। এখনও পর্যন্ত পরিসংখ্যানগুলি মোট_সামগ্রী 3923 দেখায় I আমি মোট_প্রেমী 0 তে নেমে আসার প্রত্যাশা করছিলাম এটি কীভাবে যাচাই করবেন না যে ক্যাশেটি ফ্লাশ করা হয়েছিল?
— ড্যানি আর্মস্ট্রং

4
@ ড্যানিআর্মস্ট্রং, ফ্লাশ কেবলমাত্র মেয়াদোত্তীর্ণ হিসাবে আইটেম চিহ্নিত করে। কর্মক্ষমতা কারণে মেমচিচি সরাসরি ক্যাশে থেকে মেয়াদোত্তীর্ণ আইটেমগুলি সরায় না। আপনি মেয়াদোত্তীর্ণ আইটেমগুলি পেতে পারেন, সুতরাং এগুলি একটি API দৃষ্টিভঙ্গি থেকে
— নিখোঁজ হয়েছে

@ টেরি - "আপনি মেয়াদোত্তীর্ণ আইটেমগুলি পেতে পারেন" এর পরিবর্তে "আপনি মেয়াদোত্তীর্ণ আইটেমগুলি পেতে পারবেন না" বলতে চাওয়ার অর্থ কি?
— ব্রায়ান ম্যাথিউজ

হ্যাঁ আমি কি. দুঃখিত
— টেরি

40

এটি নেটক্যাট ব্যবহার করেও কাজ করবে

echo "flush_all" | nc -q 2 localhost 11211 

তারপরে "ওকে" অপেক্ষা করুন।


4
printf "flush_all\nquit\n" | nc -q -1 127.1 11211
— ডাব্লু

3
ওএসএক্স-এর সময়সীমাটির জন্য আমাদের প্রয়োজন:echo "flush_all" | nc -w 2 localhost 11211
— মাহেমফ

ডাব্লু / ও ছেড়ে দিন এবং অপেক্ষা করুন:printf "flush_all" | nc localhost 11211
— জিয়ানফ্র্যাঙ্কো পি।

23

memcflush মেমক্যাস সরঞ্জামগুলিতে আপনি যা চান তা হ'ল:

memcflush --servers=localhost:11211

localhostআপনার সার্ভার যাই হোক না কেন তা পরিবর্তন করুন ।

মেমক্যাস সরঞ্জামগুলি সার্ভারে ইনস্টল করা নাও হতে পারে, আপনি যদি কোনও ডেবিয়ান-ভিত্তিক ওএস চালাচ্ছেন তবে আপনি এটি এটি ইনস্টল করতে পারেন:

sudo apt-get install libmemcached-tools

2
রেড হ্যাট বিতরণে ইউটিলিটি অন্তর্ভুক্ত করা হয় libmemcached।
— কেভিন

8

বাশে আপনি এই অভিনব বাক্য গঠন ব্যবহার করতে পারেন:

echo flush_all > /dev/tcp/localhost/11211

অন্যথায় memflushকমান্ডটি ব্যবহার করুন :

memflush --servers=localhost

যেহেতু টেলনেট এবং এনসি আমাদের সার্ভারে উপলভ্য ছিল না, তাই প্রথম সমাধানটি ঠিক কাজ করে, ধন্যবাদ।
— গেটেজ

4

বরং সময় সমাপ্ত জন্য অপেক্ষা চেয়ে অনুসরণ করে কমান্ড ক্ষণিক করতে পারেন flush_all সঙ্গে quitকমান্ড প্রয়োগ করুন:

printf "flush_all\r\nquit\r\n" | nc localhost 11211

বিকল্পভাবে যদি আপনার না থাকে nc:

printf "flush_all\r\nquit\r\n" > /dev/tcp/127.0.0.1/11211

যদিও এই পদ্ধতিটি কোনও আউটপুট উত্পাদন করবে না, যদিও আপনি এটি যাচাই করে তা পরীক্ষা করে যাচাই statsকরতে পারেন cmd_flush।


3

(sleep 2; echo flush_all; sleep 2; echo quit; ) | telnet 127.0.0.1 11211

যদি আপনি এটি অ-ইন্টারেক্টিভভাবে চালাতে চান

@ হাইকোকে ধন্যবাদ


এটি আমার পক্ষে কাজ করেছিল, কারণ আমার কাছে একটি হোস্ট ছিল যেখানে আমি nc. Note that I worked fine for me without either the initial ঘুম `বা ফাইনাল ইনস্টল করতে চাই না quit। আমি করেছি( echo 'flush_all' ; sleep 2 ) | telnet myhost.fqdn.com 11211
— জোশুয়া হুবার

0

যদি আপনি সিনট্যাক্সকে মেমচেড করার জন্য সংযোগের জন্য কোনও সকেট ব্যবহার করেন

echo "flush_all" | nc -U ~/memcached.sock

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.