2011-07-12 14 views
16

हर कोई जानता है कि वहाँ पीएचपी पर मेम्कैश के लिए दो एक्सटेंशन हैं:पीएचपी सत्र और memcached

  • मेम्कैश
  • memcached

आप मेम्कैश तो जैसे PHP के लिए एक session_handler के रूप में PHP एक्सटेंशन का उपयोग कर सकते हैं:

session.save_handler = memcache 
session.save_path = "tcp://serv01:11211,tcp://serv02:11211,tcp://serv03:11211" 

या आप तो जैसे memcached का उपयोग कर सकते हैं:

0,123,
session.save_handler = memcached 
session.save_path = "serv01:11211,serv02:11211,serv03:11211" 

लेकिन यह कैसे memcached करने के लिए अन्य पैरामीटर सेट करने के लिए जैसे:

  • Memcached :: OPT_DISTRIBUTION
  • Memcached :: OPT_RETRY_TIMEOUT
  • Memcached :: OPT_CONNECT_TIMEOUT

पीएचपी मैं में ऐसा ही होगा:

$cache = new Memcached(); 
$cache->addServer('serv01', 11211); 
$cache->addServer('serv02', 11211); 
$cache->addServer('serv03', 11211); 
$cache->setOption(Memcached::OPT_HASH, Memcached::HASH_MD5); 
$cache->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT); 
$cache->setOption(Memcached::OPT_CONNECT_TIMEOUT, 150); 
$cache->setOption(Memcached::OPT_RETRY_TIMEOUT, 0); 

लेकिन अब तक मुझे session_handler द्वारा उपयोग किए जाने पर उन चर को सेट करने के तरीके के बारे में कोई दस्तावेज या उदाहरण नहीं मिला है।

+0

यहां PHP और memcached का उपयोग करके बॉक्स कार्यान्वयन से बाहर है। http://kvz.io/blog/2008/06/22/enhance-php-session-management/ – Beachhouse

उत्तर

8

दोनों PECL एक्सटेंशन के स्रोत कोड गर्त देख रही है और खुद libmemcached बाद मैं अंत में memcached विस्तार के लेखक के ब्लॉग की टिप्पणी में मेरा उत्तर मिल गया।

http://zmievski.org/2009/01/new-memcached-extension

मैं बोली मामले में अपने ब्लॉग कुछ दिन गायब हो गया:

आंद्रेई ने कहा: @Ash, सत्र पथ वाक्य रचना को बचाने अन्य मेम्कैश विस्तार के रूप में काफी समान नहीं है। प्रयास करें:

session.save_path = "127.0.0.1:11211"

ऐश Searle ने कहा: वहाँ वाक्य रचना के लिए किसी भी प्रलेखन है - यानी यह पहले मेम्कैश कार्यान्वयन की तरह कई सर्वरों और वैकल्पिक पैरामीटर क्या करता है? (जैसे save_path = "127.0.0.1:11211?persistent=1 & टाइमआउट = 1 & retry_interval = 15")

आंद्रेई ने कहा: @Ash, नहीं, यह नहीं है कि उन्नत है। अभी के लिए, वाक्यविन्यास डिफ़ॉल्ट है जो libmemcached पार्सर का समर्थन करता है: मूल रूप से, होस्टनाम की अल्पविराम से अलग सूची: पोर्ट प्रविष्टियां, जहां: पोर्ट वैकल्पिक है।

या

रिच चोय ने कहा: पोर्ट: वहाँ वेब कि प्रत्येक कनेक्शन पैरामीटर कि मेजबान के बाद दिखाई देता बताते हैं पर एक संदर्भ है? उदाहरण के लिए "टाइमआउट = 1" का क्या अर्थ है?

एंड्री ने कहा: @Rich, आप किस एक्सटेंशन का उपयोग कर रहे हैं? :) मेरा उन अतिरिक्त मानकों का समर्थन नहीं करता है, आपको pecl/memcache के बारे में बात करनी होगी।

और

फ्रैंक ओर्सन ने कहा: 1) करता है PECL/memcached समर्थन ग्राहक पर यूडीपी? मुझे इसके बारे में कोई जानकारी नहीं मिली। मुझे पता है कि pecl/memcache 3.0.4 इसका समर्थन करता है।

2) क्या pecl/memcached में ग्राहक में विफलता समर्थन है?

एंड्री ने कहा: फ्रैंक, मैं memcached एक्सटेंशन के अगले संस्करण (2.0) पर काम कर रहा हूं। इसमें यूडीपी समर्थन और प्रतिकृति (फेलओवर) होगा।

आप संस्करण 2 के स्रोत कोड आप उदाहरण के लिए देख सकते हैं कि आप save_path स्ट्रिंग में जोड़ सकते हैं "लगातार =" और "--server" ((जो मैं इसे कैसे किया जाएगा पता नहीं है जांच प्रयुक्त)

3

आपको अपना स्वयं का सत्र हैंडलर लिखना होगा और इसके आसपास मेमकेचे (डी) विधियों को लपेटना होगा।

http://www.php.net/manual/en/function.session-set-save-handler.php

+0

यदि मेरे पास कोई अन्य उत्तर नहीं है तो मैं अपना स्वीकार करें लेकिन मैं वास्तव में अपने स्वयं के सत्र हैंडलर लिखने से बचना चाहता हूं। – zzarbi

+0

इसके आसपास कोई दूसरा रास्ता नहीं है। –

संबंधित मुद्दे