PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

pgmemcache सेटअप और उपयोग

PostgreSQL में टेबल को प्रीलोड करना या कैशिंग करना एक कठिन काम है, क्योंकि PostgreSQL सिंगल बड़े सिंक्रोनाइज़-लेवल मेमोरी मैनेजमेंट की पेशकश नहीं करता है। सभी यादें स्वतंत्र हैं। Memcached जैसे तृतीय पक्ष टूल के साथ कैशिंग संभव है।

pgmemcache PostgreSQL यूज़र-डिफ़ाइंड फ़ंक्शंस (API) का एक सेट है जो memcached को एक इंटरफ़ेस प्रदान करता है। pgmemcache, पूर्व-आवश्यकताएं libmemcached होने की अनुशंसा करती हैं, हालांकि इसके साथ memcached स्थापित करने की भी अनुशंसा की जाती है। मेरी प्रस्तुति में pgmemcache API का उपयोग करके स्थापना/कैशिंग/निगरानी शामिल है। चूंकि मैं डेवलपर या हैकर नहीं हूं :), इसलिए मेरे कार्यान्वयन का तरीका बहुत ही सरल तरीके से है।

अंक:

  • की/वैल्यू के आधार पर मान को कैश में स्टोर करता है, प्राथमिक कुंजी/अद्वितीय कुंजी के साथ तालिका रखने की अनुशंसा की जाती है।
  • कोई डेटा अतिरेक नहीं - यदि मेमकैच्ड नीचे चला जाता है या स्थान से बाहर चला जाता है, तो नए रिकॉर्ड और अपडेट खो जाएंगे।
  • सभी memcached आदेशों का समर्थन करता है (सेट/प्राप्त (एकल/बहु)/हटाएं/बदलें/incr/आंकड़े)
  • डेटा को memcached में रखने के बाद और यदि आप टेबल को बैकएंड से ड्रॉप करते हैं, तो memcached कोई त्रुटि नहीं देगा। यह आपका प्रबंधन है कि आप इसे कैसे बनाए रखते हैं।
  • डेटा पर पुनरावृति करने या यह निर्धारित करने की कोई क्षमता नहीं है कि कौन सी कुंजियाँ संग्रहीत की गई हैं।
  • जब लोग खेल रहे हों या जुड़े हुए हों, तो आप कभी भी मेमकेच्ड सर्वर को नीचे नहीं ला सकते हैं या पूल में नया नहीं जोड़ सकते हैं।
  • यदि किसी कारण से पृष्ठभूमि अद्यतन करने की प्रक्रिया रुक जाती है, तो अद्यतन नहीं होते हैं और एक संभावना है कि memcached सर्वर भर सकता है।
  • डेटा तक पहुंचने से पहले प्रत्येक PostgreSQL बैकएंड को memcached पोर्ट से जुड़ना होगा।
  • मेमकेड डिफ़ॉल्ट पोर्ट 11211 पर चलता है

पूर्वापेक्षाएँ:

  1. पोस्टग्रेएसक्यूएल 8.4. या ऊपर
  2. लिबेवेंट
  3. मेमकैश्ड
  4. libmemcached
  5. pgmemcache
  6. निगरानी-उपकरण (निगरानी-उपकरण, डैमटॉप, आदि)

स्थापना:
चरण 1. (मुक्ति)

pgmemcache को कॉन्फ़िगर करते समय Libevent API महत्वपूर्ण है, मैं स्थापना के पहले चरण के रूप में पुस्तकालयों को रखना पसंद करता हूं। तो चलिए शुरू करते हैं libevent लाइब्रेरी को डिफॉल्ट लोकेशन में कॉन्फिगर करने के साथ।

Download link for libevent:
http://www.monkey.org/~provos/libevent-2.0.12-stable.tar.gz
tar -xvf libevent-2.0.12-stable.tar.gz
cd libevent-2.0.12-stable
./configure
make
make install

चरण 2 (मेमकैच्ड)

libevent को सक्षम करके memcached स्थापित करें।

Download link for memcached:
http://memcached.googlecode.com/files/memcached-1.4.6.tar.gz
cd /usr/local/src/memcached-1.4.6
------on 32-bit
export LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
./configure --prefix=/opt/PostgreSQL/9.0/bin/ --with-libevent=/usr/lib
------on 64-bit
export LD_LIBRARY_PATH=/usr/lib64:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
./configure --prefix=/opt/PostgreSQL/9.0/bin/ --with-libevent=/usr/lib64
make
make install

चरण 3. (libmemcached)

pgmemcache libmemcached के शीर्ष पर बनाया गया है। Libmemcached memcache बाइनरी लोकेशन ढूंढता है, इसलिए आगे बढ़ने से पहले memcached बायनेरिज़ के लिए पथ सेट करें।

export PATH=/opt/PostgreSQL/9.0/bin/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
Download link:
http://launchpad.net/libmemcached/1.0/0.50/+download/libmemcached-0.50.tar.gz
cd libmemcached-0.50
./configure
make
make install

चरण 4 (pgmemcache)

pgmemcache API कैशिंग/डेटा को पुनः प्राप्त करने जैसे memcached के साथ बातचीत करने में मदद करेगा।

Download link:
http://pgfoundry.org/frs/download.php/3018/pgmemcache_2.0.6.tar.bz2
cd pgmemcache
PATH=/opt/PostgreSQL/9.0/bin:$PATH make USE_PGXS=1 install
or
make
make install

स्थापना सभी API के साथ pgmemcache.sql फ़ाइल बनाएगी जो PG contrib स्थान के अंतर्गत memcache के साथ सहभागिता करेगी। Pgmemcache API बनाने के लिए, बस सभी डेटाबेस में pgmemcache.sql फ़ाइल निष्पादित करें।

psql -p PGPORT -d PGDATABASE -f /opt/PostgreSQL/9.0/share/postgresql/contrib/pgmemcache.sql

pgmemcache API की सूची:

नोट: .sql फ़ाइल निष्पादित करते समय आपको "ISTFATAL:लाइब्रेरी लोड नहीं कर सका" जैसी त्रुटि का सामना करना पड़ सकता है "/opt/PostgreSQL/9.0/lib/postgresql/pgmemcache.so":libmemcached.so.8:साझा ऑब्जेक्ट फ़ाइल नहीं खोल सकता:ऐसी कोई फ़ाइल या निर्देशिका"। मतलब, पीजी इंस्टेंस नव निर्मित पुस्तकालय के साथ लोड नहीं हुआ। संकल्प, पथ और LD_LIBRARY_PATH सेट करें और पुस्तकालयों को पहचानने के लिए आवृत्ति को पुनरारंभ करें।

Eg:-
export PATH=/opt/PostgreSQL/9.0/bin/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
$pg_ctl -D $PGDATA restart

यदि आप अपने पीजी इंस्टेंस के लिए डिफ़ॉल्ट रूप से pgmemcache लोड करना चाहते हैं, तो postgresql.conf फ़ाइल को संपादित करें और निम्नलिखित पैरामीटर बदलें और क्लस्टर को पुनरारंभ करें।

shared_preload_libraries='pgmemcache'
custom_variable_classes='pgmemcache'

कॉन्फ़िगरेशन:
चरण 1.

कैशिंग डेटा के लिए, पहले आपको मेमोरी को इनिशियलाइज़ करने की आवश्यकता होती है, एक बार मेमोरी आवंटित होने के बाद, बाद में पीजी डेटा को कैश में बाँधने और पुश करने की जिम्मेदारी देता है। यहाँ, मैंने डिफ़ॉल्ट पोर्ट 11211 पर 512MB के साथ लोकलहोस्ट पर अपना memcache शुरू किया है। -d का अर्थ है डेमॉन शुरू करना। मेरी सारी एक्सरसाइज लोकलहोस्ट पर होती है।

$./memcached -d -m 512 -u postgres -l localhost -p 11211

नोट:कैश से डेटा को पुनः प्राप्त करने के लिए, प्रत्येक PostgreSQL बैकएंड को पहले डेटा को बाइंड और पुनः प्राप्त करना चाहिए।

चरण 2.

इंस्टेंस को चल रहे मेमकैच पोर्ट से बांधें। बाइंडिंग के बाद, मेम्कैश्ड आँकड़ों के लिए चेकआउट करें।

चरण 3.

अब, डेटा को मेम्केड में कैश करने का समय है, मेम्केड अपनी मेमोरी में डेटा को रहने के लिए कुंजी/मान का उपयोग करता है, इसलिए सुनिश्चित करें कि आपकी तालिका में प्राथमिक/अद्वितीय कुंजी है, इसलिए पुनर्प्राप्त करना आसान होगा। जैसा कि उल्लेख किया गया है, मूल्य रखने और उन्हें एक्सेस करने के लिए खेलने के लिए बहुत अच्छे एपीआई हैं, मेरे उदाहरण में, मैं डेटा को पुनः प्राप्त करने के लिए मूल्य और memcache_get () को रखने के लिए memcache_set() का उपयोग करता हूं।

एक बार मेम्केड में मान सेट हो जाने के बाद, अब यह आपकी जिम्मेदारी है कि आप अपने बैकएंड को मेमकैच्ड से बांधें और pgmemcache API की मदद से आप डेटा तक पहुंच सकते हैं। प्रत्येक पोस्टग्रेज बैकएंड को एक्सेस करने से पहले बाइंड करना होगा। कृपया नीचे उदाहरण देखें।

कैशे से डेटा प्राप्त करना

निगरानी

यदि आप linux में बहुत अच्छे हैं, तो आप memcached मेमोरी पर अधिकतम जानकारी प्राप्त कर सकते हैं, हालाँकि कुछ उपकरण हैं जो memcached स्रोत पैक जैसे मॉनिटरिंग-टूल्स, damemtop आदि के साथ आते हैं। memcache की निगरानी के लिए निगरानी-उपकरण उपयोगिता का उपयोग कर रहा हूँ।

usage:-
memcached-tool localhost display
memcached-tool localhost dump
memcached-tool localhost stats | grep bytes

उदाहरण:

pgmemcache सेटअप करने और मूल बातें समझने के लिए मेरी ओर से एक छोटा सा प्रयास। आशा है कि यह मददगार था। अपनी टिप्पणियों या सुझावों को पोस्ट करते रहें जिनकी अत्यधिक सराहना की जाती है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL अंतराल मान '2 दिन' को कैसे सम्मिलित करें

  2. लंबी बाइनरी (कच्चे डेटा) तारों को संग्रहित करना

  3. PostgreSQL में सिंगल कोट्स और डबल कोट्स में क्या अंतर है?

  4. Postgres में फ़ंक्शन ओवरलोडिंग को अक्षम करने का कोई तरीका है

  5. कैसे Cos () PostgreSQL में काम करता है