pgmemcache е набор от PostgreSQL дефинирани от потребителя функции (API), които предоставят интерфейс към memcached. pgmemcache, pre-requisites препоръчва да имате libmemcached, но също така се препоръчва да инсталирате memcached заедно с него. Моята презентация се състои от инсталиране/кеширане/мониторинг с помощта на pgmemcache API. Тъй като не съм разработчик или хакер :), така че моят начин на внедряване е много прост метод.
Точки:
- Съхранява стойността в кеша на базата на ключ/стойност средства, препоръчва се поддържането на таблица с първичен/уникален ключ.
- Без резервиране на данни – Ако memcached изпадне или свърши, новите записи и актуализации ще бъдат загубени.
- Поддържа всички команди с memcached (set/get(single/multi)/delete/replace/incr/stats)
- След като запази данните в memcached и ако изхвърлите таблицата от бекенда, memcached няма да изведе грешки. Всичко е ваше управление как го поддържате.
- Няма възможност за повторение на данни или определяне кои ключове са били съхранени.
- Никога не можете да свалите сървър с memcached или да добавите нов към пула, докато хората играят или са свързани.
- Ако процесът на фоново актуализиране спре по някаква причина, актуализациите не се извършват и има възможност сървърът с memcached да се запълни.
- Всеки PostgreSQL бекенд трябва да се свърже с memcached порт, преди да получи достъп до данните.
- Memcached работи на порт по подразбиране 11211
Предварителни условия:
- PostgreSQL 8.4. или по-горе
- libevent
- memcached
- libmemcached
- pgmemcache
- Инструменти за наблюдение (инструменти за наблюдение,damemtop и т.н.)
Инсталация:
Стъпка 1. (libevent)
API на Libevent е важен при конфигурирането на pgmemcache, предпочитам да имам библиотеки като първа стъпка от инсталацията. Така че нека започнем с конфигурирането на библиотека libevent в местоположение по подразбиране.
Връзка за изтегляне за 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 (memcached)
Инсталирайте memcached, като активирате libevent.
Връзка за изтегляне за memcached:
http://memcached.googlecode.com/files/memcached-1.4.6.tar.gz
cd /usr/local/src/memcached-1.4.6
------на 32-битов
експорт LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
./configure --prefix=/opt /PostgreSQL/9.0/bin/ --with-libevent=/usr/lib
------на 64-битова
експортиране 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
направи инсталиране
предварително>Стъпка 3. (libmemcached)
pgmemcache е изграден върху libmemcached. Libmemcached търси двоично местоположение на memcache, така че задайте пътя до memcached двоични файлове, преди да продължите.
export PATH=/opt/PostgreSQL/9.0/bin/bin:$PATH
експортирайте LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
Връзка за изтегляне:
http://launchpad.net/libmemcached/1.0/0.50/+download/libmemcached-0.50.tar.gz
cd libmemcached-0.50
./configure
make
направете инсталиранеСтъпка 4 (pgmemcache)
pgmemcache API ще помогне, взаимодействайки с memcached като кеширане/извличане на данни.
Връзка за изтегляне:
http://pgfoundry.org/frs/download.php/3018/pgmemcache_2.0.6.tar.bz2
cd pgmemcache
PATH=/opt/PostgreSQL/ 9.0/bin:$PATH направи USE_PGXS=1 инсталиране
или
направи
направи инсталацияИнсталацията ще създаде pgmemcache.sql файл с всички API, за да взаимодейства с memcache под местоположението на PG contrib. За да създадете 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:не може да се отвори споделен обектен файл:Няма такъв файл или указател”. Означава, че PG екземплярът не се зареди с новосъздадена библиотека. Резолюция, задайте PATH и LD_LIBRARY_PATH и рестартирайте екземпляра, за да разпознаете библиотеките.
Напр.:-
експортирайте PATH=/opt/PostgreSQL/9.0/bin/bin:$PATH
експортирайте LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
$pg_ctl -D $PGDATA рестартиранеАко искате да заредите pgmemcache по подразбиране във вашия PG екземпляр, редактирайте файла postgresql.conf и променете следните параметри и рестартирайте клъстера.
shared_preload_libraries='pgmemcache'
custom_variable_classes='pgmemcache'Конфигурация:
Стъпка 1.За кеширане на данни първо трябва да инициализирате паметта, след като паметта е разпределена, по-късно PG поема отговорността да обвърже и изтласка данните в кеша. Тук стартирах моя мемкеш на localhost с 512MB на порт по подразбиране 11211. -d означава стартиране на демона. Всичките ми упражнения са на localhost.
$./memcached -d -m 512 -u postgres -l localhost -p 11211Забележка:За да извлече данни от кеша, всеки PostgreSQL backend трябва първо да обвърже и извлече данните.
Стъпка 2.
Свържете екземпляра към работещия мемкеш порт. След обвързване проверете за мемкешираната статистика.
Стъпка 3.
Сега е време да кешира данните в memcached, Memcached използва ключове/стойност, за да съхранява данни в паметта си, така че се уверете, че вашата таблица има първичен/уникален ключ, така че извличането ще бъде лесно. Както споменахме, има много добри API, за да се заиграете със запазването на стойността и достъпа до тях, в моя пример използвам memcache_set() за запазване на стойността и memcache_get() за извличане на данни.
След като стойността е зададена в memcached, сега е ваша отговорност да свържете вашия бекенд към memcached и с помощта на pgmemcache API можете да получите достъп до данните. Всеки Postgres backend трябва да се обвърже преди достъп. Моля, намерете примера по-долу.
Получаване на данни от кеша
Мониторинг
Ако сте много добър в linux, можете да извлечете максимална информация за memcached памет, но има няколко инструмента, които идват заедно с memcached изходния пакет като инструменти за наблюдение, damemtop и т.н.,. Използвам помощната програма за инструменти за наблюдение за наблюдение на мемкеша.
usage:-
memcached-tool localhost display
memcached-tool localhost dump
memcached-tool localhost stats | grep байтовеПример:
Малко усилие от моя страна за настройка на pgmemcache и разбиране на основите. Дано е било полезно. Продължавайте да публикувате вашите коментари или предложения, които са високо оценени.