بازگشت   پی سی سیتی > کامپیوتر اینترنت و شبکه Computer internet > زبان های برنامه نویسی Programming

زبان های برنامه نویسی Programming بحث در مورد زبانهای مختلف برنامه نویسی

پاسخ
 
ابزارهای موضوع نحوه نمایش
  #1  
قدیمی 06-04-2013
دانه کولانه آواتار ها
دانه کولانه دانه کولانه آنلاین نیست.
    مدیر کل سایت
        
کوروش نعلینی
 
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382

7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
دانه کولانه به Yahoo ارسال پیام
پیش فرض Memcached چیست ؟ آموزش نصب کش Memcached در لینوکس

Memcached چیست ؟ آموزش نصب کش Memcached در لینوکس


قبل از هر چیز نگاه کنید که چه کسانی دارند از این سیستم استفاده میکنند :






ممكش(Memchache) برنامه اي است كه سمت يك سرور وب نصب و اجرا مي شود.


از اين نظر كه هميشه بايد در حال اجرا باشد مانند MySql است ولي برخلاف MySql كه براي وبسايت ها وسيله حياتي است و امروزه هر هاستي حتي برخي هاست هاي مجاني آن را ارائه مي دهند،‌ ممكش اين طور نيست و تا يك هاست مجازي يا اختصاصي نگيريد و به قسمت SSH يا اجراي Command دسترسي نداشته باشيد خبري هم از ممكش نخواهد بود.


اما چرا ممكش خيلي كم استفاده مي شود و بيشتر وبسايت ها حتي نام ممكش به گوششان نخورده چه برسد به اين كه از آن استفاده كنند!!؟؟





جواب سوال اين است كه ممكش تنها براي وبسايت هايي مفيد است كه هم تعداد درخواست هاي زيادي در واحد زمان و از چندين كاربر آنلاين به سمت سرور ميرود كه اين در وبسايت هايي كه از ايجكس(Ajax) زياد استفاده مي كنند و كاربر زياد دارند مشهود است و هم اينكه در هر درخواستي چندين بار از ديتابيس استفاده مي كنند. پس تا وبسايتي اين دو شرط را نداشته باشد نيازي هم به ممكش ندارد و حتي اگر وبسايتي هم اين دوشرط را داشت بايد ديد كه MySql آن با در دست داشتن منابع مختلف سروري كه در اختيار دارد از جمله سرعت هارد و قدرت cpu آيا كشش جوابگويي به آن همه اجراي كواري را دارد يا اينكه باعث مشغول شدن زياد پردازشگر و معطل كردن درخواست ها مي شود كه در اين حالت نياز به يك برنامه مانند ممكش ديده مي شود كه تنها از منبع حافظه اصلي(Ram) كه سرعت غير قابل مقايسه با حافظه جانبي(Hard) كه MySql براي نگهداري مقدارها بهره ميگيرد دارد استفاده كند و مثلا نتايجي كه از اجراي كواري Select از ديتابيس خارج ميشود را در مدت زمان كوتاهي نگه دارد تا درخواست هاي مشابه با اجراي آن كواري از آن نتيجه گذشته استفاده كنند و نيازي به اجراي دوباره آن نباشد.




توجه: ممكش براي كش كردن داده‌ها در حالت سرورهاي توزيع شده مناسب است؛ هرچند در يك سرور واحد نيز به كار مي‌رود؛ اگر سرور توزيع شده نداريد بهتر است از Alternative PHP Cache)APC) استفاده كنيد، چون در اين حالت سرعت بالاتري دارد.






گام هاي زير در سيستم عامل لينوكس نسخه CentOS كاملا تست شده و جواب داده است


  1. ابتدا وارد SSH سرور مي شويم.
  2. قبل ار نصب خود ممكش نياز است كه دستورات زير را اجرا كنيم چون ممكش وابسته است به libevent
    cd /usr/local/src
    curl -O http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz
    tar xzvf libevent-1.4.9-stable.tar.gz
    cd libevent-1.4.9-stable
    ./configure --prefix=/usr/local
    make
    make install
    يا
    yum install libevent
  3. براي نصب ممكش از yum استفاده مي كنيم. اما قبل از آن yum را تقويت مي كنيم با اجراي دستورات زير
  4. حال نوبت به نصب خود ممكش ميرسد با اجراي تك دستور زير
    yum install --enablerepo=rpmforge memcached
    • توجه: ممكن است با اشكال زير مواجه شويد
      Error: Missing Dependency: libevent-1.1a.so.1 is needed by package 1: nfs-utils-1.0.9-40.el5.i386 (installed)...
      براي رفع آن دستور زير را اجرا مي كنيم تا برنامه nfs-utils و portmap packages حذف شود (منبع)
      yum remove portmap nfs-utils
    ممكش نصب شد حالا چطور آن را كنترل كنيم:
    • ريست كردن ممكش
      service memcached restart
    • قرار دادن اجراي خود به خود ممكش در هنگام بوت
      chkconfig memcached on
    • اجراي ممكش
      service memcached start
      يا
      memcached -u root -d
    • توقف ممكش
      service memcached stop
      يا
      pkill memcached
    • اطلاع از اجراي ممكش
      ps aux | grep memcached
      كه اگر در دو خط مانند زير خروجي دهد مي فهميم كه در حال اجراست
      nobody 11365 0.5 1.8 67972 14596 ? Ssl 07:47 1:33 memcached -d -p 11211 -u nobody
      -c 1024 -m 64 root 23807 0.0 0.0 3912 676 pts/1 S+ 12:59 0:00 grep memcached
  5. تا اينجا ممكش را راه اندازي كرديم ولي هنوز قابل دسترسي از طريق php نيست. براي اينكه بتوانيد در كدهاي php از طريق توابع تعريف شده اي با ممكش كار كنيد لازم است PECL ممكش را نيز به سرورتان اضافه كنيد. پس دستور زير را اجرا كنيد
    pecl install memcached
    يا
    cd /usr/local/src/
    wget http://pecl.php.net/get/memcache-2.1.2.tgz
    tar zxvf memcache-2.1.2.tgz
    cd memcache-2.1.2
    phpize
    ./configure
    make & make install
    • توجه: ممكن است دستور pecl تعريف نشده باشد براي همين از قطعه دستور دوم ناچاريد استفاده كنيد
    • توجه مهم: ممكن است در اجراي هركدام از دستورات بالا با خطايي شبيه زير مواجه شويد
      configure: error: memcache support requires ZLIB. Use --with-zlib-dir= to specify
      prefix where ZLIB include and library are located ERROR: `/var/cache/php-pear/memcache-2.2.5/configure
      --enable-memcache-session=yes' failed
      پس بايد قبل از آن zlib-devel را با دستور زير نصب كرد
      yum install zlib-devel
    • توجه مهم: ممكن است در اجراي هركدام از دستورات بالا با خطايي شبيه زير مواجه شويد
      configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir=<DIR>
      to specify the prefix where libmemcached headers and library are located
      ERROR: `/tmp/tmpBwSimh/memcached-1.0.1/configure' failed
      يا
      "memcache.lo" is not a valid libtool object
      براي رفع آن پيشنهاد مي شود اصلا از شيوه زير براي نصب pecl مربوطه استفاده كنيد (منبع)
      cd /usr/src/
      wget http://pecl.php.net/get/memcache-2.2.4.tgz
      tar -zxvf memcache-2.2.4.tgz
      cd memcache-2.2.4
      phpize && ./configure --enable-memcache && make

      cp modules/memcache.so /usr/lib/php/modules/
      در ادامه با اجراي دستور زير مرحله بعدي نيز تمام مي شود
      touch /etc/php.d/memcached.ini
      echo 'extension=memcache.so' > /etc/php.d/memcached.ini
  6. فايلي با نام memcache.ini در پوشه احتمالا /etc/php.d سرور اگر نيست ساخته و آن را باز كنيد و خط زير را
    extension=memcache.so
    اگر نيست وارد آن كنيد و اگر هست مطمئن شويد كه اين خط با علامت ';' شروع نشده باشد وگرنه اين علامت را حذف كنيد
    • توجه: مي توانستيم به جاي اين فايل از php.ini موجود در پوشه احتمالا /etc/ هم استفاده كنيم.
  7. در نهايت بايد Apache سرور ريست شود تا ممكش قابل استفاده در كدهاي php شود.
    service httpd restart
    يا
    /etc/init.d/httpd restart
  8. حال براي اطمينان از موفقيت نصب ممكش كافي است دستور زير را در php اجرا كنيم
    phpinfo();
    و بخشي با عنوان Memcache را در خروجي آن مانند شكل زير بيابيم :




    حال در كدهاي php مي توانيد از دستورات اضافه شده براي كار با ممكش مانند دستورات زير استفاده كنيد
    $link=memcache_connect ($mcservername,$mcport);
    memcache_set($link, $key, $value,MEMCACHE_COMPRESSED, $expire);
    $value = memcache_get($link,$key);
    memcache_delete($link,$key);
    memcache_close($link);






توضيحات تکميلي :

همانطور كه مي دانيد سشن ها در فايل ذخيره مي شوند يعني باز هم مثل ديتابيس در هارد !!! خوشبختانه ممكش فكر اينجا را هم كرده و اگر ممكش را به درستي نصب كرده باشيد و از سشن هم استفاده مي كنيد مي توانيد با تغيير دادن دو خصوصيت زير كه در فايل php.ini وجود دارد

session.save_handler = files
session.save_path = "/var/lib/php/session"

به مقدار هاي زير
session.save_handler = memcache
session.save_path = "tcp://localhost:11211"

كاري كنيد كه از اين به بعد سشن ها اتوماتيك در Ram خوانده و نوشته شوند كه اين خود بسيار سرعت را بالا خواهد برد.
براي اثر گذاري اين تغيير دوباره مرحله 7 را انجام دهيد


منبع سایت شگردها
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست




ویرایش توسط دانه کولانه : 06-04-2013 در ساعت 08:58 PM
پاسخ با نقل قول
  #2  
قدیمی 06-04-2013
دانه کولانه آواتار ها
دانه کولانه دانه کولانه آنلاین نیست.
    مدیر کل سایت
        
کوروش نعلینی
 
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382

7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
دانه کولانه به Yahoo ارسال پیام
پیش فرض آموزش نصب کش Memcached در لینوکس

آموزش نصب کش Memcached در لینوکس

ممکش یا Memcached یک سیستم کش بسیار قوی و پیشرفته است که اشیاء و کوئری های دیتابیس را در حافظه و رم سرور کش و ذخیره کرده و کمک فراوانی به لود سرور و سریع تر شدن لود وب سایت شما میکند.برای نصب مم کش Memcached دستورات زیر را اجرا کنید :
Install Memcached package

Fedora 17/16/15/14/13/12, CentOS/Red Hat (RHEL) 6.3/6.2/6.1/6
yum install memcached

CentOS/Red Hat (RHEL) 5.8
yum --enablerepo=remi install memcached

مم کش یا Memcached بیشترین تاثیر را در وب سایت هایی با دیتابیس های بزرگ و تعدا کوئری های زیاد دارد.اگر دیتابیس سایت شما بزرگ و سنگین است (برای مثال از نوع MySql) به شما Memcached را توصیه میکنیم
آموزش نصب مم کش Memcached در سرور لینوکس


بیشترین بازدهی Memcached به صورت استفاده در سرور جدا گانه ای مخصوص کش است.در صورتی که از Memcached در سروری جدا گانه استفاده میکنید توجه داشته باشید که باید پورت ۱۱۲۱۱ را در فایر وال iptables باز کنید.برای باز کردن پورت ۱۱۲۱۱ یا پورتی که خودتان برای مم کش تعریف کرده اید دستورات زیر را اجرا کنید :
Edit /etc/sysconfig/iptables file:

nano -w /etc/sysconfig/iptables

Add following INPUT line:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT

Restart Iptables Firewall:

service iptables restart ## OR ## /etc/init.d/iptables restart

Test remote connection:

echo stats | nc memcache_host_name_or_ip 11211 Install Memcache Module and PHP

yum install php php-pecl-memcache

حالا باید ماژول php memcache را بر روی سرور لینوکس خودتان نصب کنید.اگر این ماژول را بر روی سرور خود نصب نکنید در هنگام استفاده از آن با پیغام خطا مواجه خواهید شد.برای نصب ماژول php memcache کافیست دستورات زیر را در لینوکس Centos خود اجرا کنید :
Install Memcached Module and PHP

yum install php php-pecl-memcached

Restart Web server

/etc/init.d/httpd restart ## OR ## service httpd restart





منبع فروم ادامنه ! ایران !
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست



پاسخ با نقل قول
  #3  
قدیمی 06-04-2013
دانه کولانه آواتار ها
دانه کولانه دانه کولانه آنلاین نیست.
    مدیر کل سایت
        
کوروش نعلینی
 
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382

7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
دانه کولانه به Yahoo ارسال پیام
پیش فرض ممکشد - دیتابیس - لینوکس پی اچ پی کش کردن





سایت رسمی ممکشد
http://memcached.org

What is Memcached?

Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.
Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its APIis available for
most popular languages.
Download Memcached

The latest stable memcached release isv1.4.15

release notes (2012-9-3)



tar.gz

Source and Development





Quick Example


Cache Results

function get_foo(foo_id) foo = memcached_get("foo:" . foo_id) return foo if defined foo foo = fetch_foo_from_database(foo_id) memcached_set("foo:" . foo_id, foo) return fooend
Play with telnet

$ telnet localhost 11211Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.get fooVALUE foo 0 2hiENDstatsSTAT pid 8861(etc)
Memcached Users











نکته شماره 3 در این مطلب :
اجتناب از 10 اشتباه ناخواسته در زبان پی اچ پی Are You Making These 10 PHP








مطالب مشابه :
آموزش نصب Alternative PHP Cache) APC) در سرور لينوكس

__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست




ویرایش توسط دانه کولانه : 06-04-2013 در ساعت 09:02 PM
پاسخ با نقل قول
پاسخ

برچسب ها
php, آموزش, برنامه نویسی, دیتابیس


کاربران در حال دیدن موضوع: 1 نفر (0 عضو و 1 مهمان)
 
ابزارهای موضوع
نحوه نمایش

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
اچ تی ام ال غیر فعال می باشد



اکنون ساعت 02:24 AM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.



Powered by vBulletin® Version 3.8.4 Copyright , Jelsoft Enterprices مدیریت توسط کورش نعلینی
استفاده از مطالب پی سی سیتی بدون ذکر منبع هم پیگرد قانونی ندارد!! (این دیگه به انصاف خودتونه !!)
(اگر مطلبی از شما در سایت ما بدون ذکر نامتان استفاده شده مارا خبر کنید تا آنرا اصلاح کنیم)


سایت دبیرستان وابسته به دانشگاه رازی کرمانشاه: کلیک کنید




  پیدا کردن مطالب قبلی سایت توسط گوگل برای جلوگیری از ارسال تکراری آنها