PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Настройка и използване на pgmemcache

Предварителното зареждане или кеширането на таблицата в PostgreSQL е трудна задача, тъй като PostgreSQL не предлага едно голямо управление на паметта на ниво синхронизация. Всички спомени са независими. Кеширането е възможно с инструменти на трети страни като memcached.

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

Предварителни условия:

  1. PostgreSQL 8.4. или по-горе
  2. libevent
  3. memcached
  4. libmemcached
  5. pgmemcache
  6. Инструменти за наблюдение (инструменти за наблюдение,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 и разбиране на основите. Дано е било полезно. Продължавайте да публикувате вашите коментари или предложения, които са високо оценени.


  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. PostgreSQL, плъзнете и разменете

  3. Защо заявката няма да запише в csv файл, докато изглежда нормално в конзолата на postgresql

  4. Как да създадете единична крайна точка за вашата настройка за репликация на PostgreSQL с помощта на HAProxy

  5. PHP и Postgres:улавяне на грешки?