pgmemcache je sada PostgreSQL uživatelsky definovaných funkcí (API), které poskytují rozhraní pro memcached. pgmemcache, předpoklady doporučují mít libmemcached, ale také se doporučuje nainstalovat spolu s ním memcached. Moje prezentace se skládá z instalace/ukládání do mezipaměti/monitorování pomocí rozhraní API pgmemcache. Protože nejsem vývojář nebo hacker :), můj způsob implementace je velmi jednoduchým způsobem.
Body:
- Ukládá hodnotu do mezipaměti na základě klíče/hodnoty, doporučuje se uchovávat tabulku s primárním klíčem/jedinečným klíčem.
- Žádná redundance dat – Pokud dojde k výpadku paměti memcached nebo dojde-li nedostatek místa, nové záznamy a aktualizace budou ztraceny.
- Podporuje všechny příkazy uložené v memcached (set/get(single/multi)/delete/replace/incr/stats)
- Po uložení dat do memcached a pokud tabulku z backendu zrušíte, memcached nevyvolá žádné chyby. Je to jen vaše správa, jak ji udržujete.
- Není možné iterovat data nebo určit, které klíče byly uloženy.
- Nikdy nemůžete vypnout server s memcached nebo přidat nový do fondu, zatímco lidé hrají nebo jsou připojeni.
- Pokud se proces aktualizace na pozadí z nějakého důvodu zastaví, aktualizace neproběhnou a je možné, že se server s memcached zaplní.
- Každý backend PostgreSQL se musí před přístupem k datům vázat na port memcached.
- Memcached běží na výchozím portu 11211
Předpoklady:
- PostgreSQL 8.4. nebo výše
- libevent
- uloženo do mezipaměti
- libmemcached
- pgmemcache
- Monitorovací nástroje (monitorovací nástroje, damemtop atd.)
Instalace:
Krok 1. (libevent)
Libevent API je důležité při konfiguraci pgmemcache, preferuji mít knihovny jako první krok instalace. Začněme tedy konfigurací knihovny libevent ve výchozím umístění.
Odkaz ke stažení pro 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
Krok 2 (uloženo do mezipaměti)
Nainstalujte memcached povolením libevent.
Odkaz ke stažení pro memcached:
http://memcached.googlecode.com/files/memcached-1.4.6.tar.gz
cd /usr/local/src/memcached-1.4.6
------na 32bitové verzi
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
------na 64bitové verzi
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
provést
provést instalaci
Krok 3. (libmemcached)
pgmemcache je postaven nad libmemcached. Libmemcached hledá binární umístění memcache, takže před pokračováním nastavte cestu k binárním souborům memcached.
export PATH=/opt/PostgreSQL/9.0/bin/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
Odkaz ke stažení:
http://launchpad.net/libmemcached/1.0/0.50/+download/libmemcached-0.50.tar.gz
cd libmemcached-0.50
./configure
make
provést instalaciKrok 4 (pgmemcache)
Pgmemcache API pomůže v interakci s memcached, jako je ukládání do mezipaměti/načítání dat.
Odkaz ke stažení:
http://pgfoundry.org/frs/download.php/3018/pgmemcache_2.0.6.tar.bz2
cd pgmemcache
PATH=/opt/PostgreSQL/ 9.0/bin:$PATH provést USE_PGXS=1 nainstalovat
nebo
provést
provést instalaciInstalace vytvoří soubor pgmemcache.sql se všemi API pro interakci s memcache v umístění příspěvku PG. Chcete-li vytvořit rozhraní API pgmemcache, stačí spustit soubor pgmemcache.sql v celé databázi.
psql -p PGPORT -d PGDATABASE -f /opt/PostgreSQL/9.0/share/postgresql/contrib/pgmemcache.sqlSeznam rozhraní API pgmemcache:
Poznámka: Při spouštění souboru .sql se můžete setkat s chybou jako „ISTFATAL:nelze načíst knihovnu „/opt/PostgreSQL/9.0/lib/postgresql/pgmemcache.so“:libmemcached.so.8:nelze otevřít soubor sdíleného objektu:Žádný takový soubor nebo adresář". To znamená, že instance PG nebyla načtena s nově vytvořenou knihovnou. Rozlišení, nastavte PATH a LD_LIBRARY_PATH a restartujte instanci, aby byly rozpoznány knihovny.
Např.:-
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 restartPokud chcete načíst pgmemcache jako výchozí do vaší instance PG, upravte soubor postgresql.conf a změňte následující parametry a restartujte cluster.
shared_preload_libraries='pgmemcache'
custom_variable_classes='pgmemcache'Konfigurace:
Krok 1.Pro ukládání dat do mezipaměti musíte nejprve inicializovat paměť, jakmile je paměť přidělena, později je PG backend zodpovědný za vazbu a vložení dat do mezipaměti. Zde jsem spustil svou memcache na localhost s 512 MB na výchozím portu 11211. -d znamená spuštění démona. Všechna moje cvičení jsou na localhost.
$./memcached -d -m 512 -u postgres -l localhost -p 11211Poznámka:Chcete-li načíst data z mezipaměti, každý backend PostgreSQL by měl nejprve svázat a načíst data.
Krok 2.
Svažte instanci se spuštěným portem memcache. Po navázání zkontrolujte statistiku memcached.
Krok 3.
Nyní, je čas ukládat data do mezipaměti do memcached, Memcached používá klíče/hodnotu k uložení dat ve své paměti, takže se ujistěte, že vaše tabulka má primární/jedinečný klíč, aby bylo načítání snadné. Jak již bylo zmíněno, existují velmi dobrá API, která si můžete pohrát s udržováním hodnoty a přístupem k nim, v mém příkladu používám memcache_set() k zachování hodnoty a memcache_get() k načítání dat.
Jakmile je hodnota nastavena v memcached, nyní je vaší odpovědností svázat váš backend s memcached a pomocí rozhraní pgmemcache API můžete přistupovat k datům. Každý backend Postgres se musí před přístupem vázat. Níže naleznete příklad.
Získávání dat z mezipaměti
Monitorování
Pokud jste velmi dobří v linuxu, můžete získat maximum informací o paměti memcached, nicméně existuje několik nástrojů, které přicházejí spolu se zdrojovým balíčkem memcached, jako jsou monitorovací nástroje, damemtop atd. Používám nástroj Monitoring-tools pro monitorování memcache.
use:-
memcached-tool localhost display
memcached-tool localhost dump
memcached-tool localhost stats | grep bajtůPříklad:
Malá snaha z mé strany nastavit pgmemcache a pochopit základy. Doufám, že to bylo užitečné. Posílejte své komentáře nebo návrhy, které si velmi vážíme.