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


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.