pgmemcache to zestaw funkcji zdefiniowanych przez użytkownika PostgreSQL (API), które zapewniają interfejs do memcached. pgmemcache, wymagania wstępne zalecają mieć libmemcached, jednak zaleca się również zainstalowanie memcached razem z nim. Moja prezentacja składa się z instalacji/cachowania/monitorowania przy użyciu API pgmemcache. Ponieważ nie jestem programistą ani hakerem :), więc mój sposób implementacji jest bardzo prosty.
Punkty:
- Przechowuje wartość w pamięci podręcznej na podstawie wartości Klucz/Wartość, zalecane jest przechowywanie tabeli z kluczem podstawowym/unikalnym.
- Brak nadmiarowości danych – Jeśli pamięć memcached przestanie działać lub zabraknie miejsca, nowe rekordy i aktualizacje zostaną utracone.
- Obsługuje wszystkie polecenia memcached (set/get(single/multi)/delete/replace/incr/stats)
- Po umieszczeniu danych w memcached i jeśli usuniesz tabelę z zaplecza, memcached nie zwróci żadnych błędów. To wszystko twoje zarządzanie, jak je utrzymujesz.
- Brak możliwości iteracji danych lub określenia, jakie klucze zostały zapisane.
- Nigdy nie można wyłączyć serwera memcached ani dodać nowego do puli, gdy ludzie grają lub są w kontakcie.
- Jeśli proces aktualizacji w tle zatrzyma się z jakiegokolwiek powodu, aktualizacje nie nastąpią i istnieje możliwość, że serwer memcached może się zapełnić.
- Każdy backend PostgreSQL musi połączyć się z portem memcached przed uzyskaniem dostępu do danych.
- Memcached działa na domyślnym porcie 11211
Wymagania wstępne:
- PostgreSQL 8.4. lub powyżej
- Libevent
- w pamięci podręcznej
- libmemcached
- pgmemcache
- Narzędzia do monitorowania (narzędzia do monitorowania, damemtop itp.)
Instalacja:
Krok 1. (libevent)
Libevent API jest ważne przy konfiguracji pgmemcache, wolę mieć biblioteki jako pierwszy krok instalacji. Zacznijmy więc od konfiguracji biblioteki libevent w domyślnej lokalizacji.
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
Krok 2 (w pamięci podręcznej)
Zainstaluj memcached, włączając libevent.
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
Krok 3. (libmemcached)
pgmemcache jest zbudowany na bazie libmemcached. Libmemcached szuka lokalizacji plików binarnych memcache, więc ustaw ścieżkę do plików binarnych memcached przed kontynuowaniem.
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
Krok 4 (pgmemcache)
API pgmemcache pomoże w interakcji z memcached, takim jak buforowanie/pobieranie danych.
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
Instalacja utworzy plik pgmemcache.sql ze wszystkimi API do interakcji z memcache w lokalizacji PG contrib. Aby utworzyć API pgmemcache, po prostu uruchom plik pgmemcache.sql w całej bazie danych.
psql -p PGPORT -d PGDATABASE -f /opt/PostgreSQL/9.0/share/postgresql/contrib/pgmemcache.sql
Lista API pgmemcache:
Uwaga: Podczas wykonywania pliku .sql możesz napotkać błąd, taki jak „ISTFATAL:nie można załadować biblioteki”/opt/PostgreSQL/9.0/lib/postgresql/pgmemcache.so”:libmemcached.so.8:nie można otworzyć udostępnionego pliku obiektu:Brak takiego pliku lub informator". Oznacza to, że instancja PG nie została załadowana nowo utworzoną biblioteką. Rozdzielczość, ustaw PATH i LD_LIBRARY_PATH i uruchom ponownie instancję, aby rozpoznać biblioteki.
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
Jeśli chcesz załadować pgmemcache jako domyślną instancję PG, edytuj plik postgresql.conf i zmień następujące parametry i zrestartuj klaster.
shared_preload_libraries='pgmemcache'
custom_variable_classes='pgmemcache'
Konfiguracja:
Krok 1.
Aby buforować dane, najpierw musisz zainicjować pamięć, gdy pamięć zostanie przydzielona, a później PG odpowiada za powiązanie i wepchnięcie danych do pamięci podręcznej. Tutaj uruchomiłem mój memcache na localhoście z 512MB na domyślnym porcie 11211. -d oznacza uruchomienie demona. Całe moje ćwiczenie odbywa się na lokalnym hoście.
$./memcached -d -m 512 -u postgres -l localhost -p 11211
Uwaga:Aby pobrać dane z pamięci podręcznej, każdy backend PostgreSQL powinien najpierw powiązać i pobrać dane.
Krok 2.
Powiąż instancję z uruchomionym portem memcache. Po związaniu, sprawdź statystyki memcached.
Krok 3.
Teraz nadszedł czas na buforowanie danych w memcached, Memcached używa kluczy/wartości do przechowywania danych w swojej pamięci, więc upewnij się, że twoja tabela ma klucz główny/unikalny, aby pobieranie było łatwe. Jak wspomniano, istnieją bardzo dobre interfejsy API, którymi można się bawić przy zachowaniu wartości i dostępie do nich, w moim przykładzie używam memcache_set() do zachowania wartości i memcache_get() do pobierania danych.
Po ustawieniu wartości w memcached, teraz Twoim obowiązkiem jest powiązanie backendu z memcached, a za pomocą pgmemcache API możesz uzyskać dostęp do danych. Każdy backend Postgresa musi zostać powiązany przed uzyskaniem dostępu. Proszę znaleźć przykład poniżej.
Pobieranie danych z pamięci podręcznej
Monitorowanie
Jeśli jesteś bardzo dobry w Linuksie, możesz wyciągnąć maksimum informacji z pamięci memcached, jednak istnieje kilka narzędzi, które są dostarczane z pakietem źródłowym memcached, takich jak narzędzia do monitorowania, damemtop itp. Używam narzędzia monitorowania do monitorowania pamięci podręcznej.
usage:-
memcached-tool localhost display
memcached-tool localhost dump
memcached-tool localhost stats | grep bytes
Przykład:
Mały wysiłek z mojej strony, aby skonfigurować pgmemcache i zrozumieć podstawy. Mam nadzieję, że to było pomocne. Nadal publikuj swoje komentarze lub sugestie, które są bardzo cenione.