PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Pengaturan dan Penggunaan pgmemcache

Pramuat atau Caching tabel di PostgreSQL adalah tugas yang sulit, karena PostgreSQL tidak menawarkan manajemen memori tingkat sinkronisasi tunggal yang besar. Semua kenangan itu independen. Caching dimungkinkan dengan alat pihak ketiga seperti memcached.

pgmemcache adalah seperangkat fungsi yang ditentukan pengguna (API) PostgreSQL yang menyediakan antarmuka untuk memcached. pgmemcache, prasyarat merekomendasikan untuk memiliki libmemcache, namun juga disarankan untuk menginstal memcached bersamanya. Presentasi saya terdiri dari instalasi/caching/monitoring menggunakan pgmemcache API. Karena saya bukan Pengembang atau Peretas :), jadi cara implementasi saya adalah dengan metode yang sangat sederhana.

Poin:

  • Menyimpan nilai dalam cache berdasarkan cara Kunci/Nilai, disarankan untuk menyimpan tabel dengan kunci utama/kunci unik.
  • Tidak ada redundansi data – Jika memcached turun atau kehabisan ruang, catatan dan pembaruan baru akan hilang.
  • Mendukung semua perintah memcache (set/get(single/multi)/delete/replace/incr/stats)
  • Setelah menyimpan data ke dalam memcached dan jika Anda menjatuhkan tabel dari backend, memcached tidak akan menimbulkan kesalahan apa pun. Ini semua manajemen Anda bagaimana Anda mempertahankannya.
  • Tidak ada kemampuan untuk mengulangi data atau menentukan kunci apa yang telah disimpan.
  • Anda tidak akan pernah bisa mematikan server memcached atau menambahkan yang baru ke kumpulan saat orang sedang bermain atau terhubung.
  • Jika proses pembaruan latar belakang berhenti karena alasan apa pun, pembaruan tidak akan terjadi dan ada kemungkinan server memcached dapat terisi.
  • Setiap backend PostgreSQL harus diikat ke port memcache sebelum mengakses data.
  • Memcached berjalan pada port default 11211

Prasyaratan:

  1. PostgreSQL 8.4. atau lebih
  2. bebas
  3. memcache
  4. libmemcache
  5. pgmemcache
  6. Alat-Pemantau (alat-pemantau,damemtop,dll.,)

Pemasangan:
Langkah 1. (libevent)

Libevent API penting ketika mengkonfigurasi pgmemcache, saya lebih suka memiliki perpustakaan sebagai langkah pertama instalasi. Jadi mari kita mulai dengan konfigurasi perpustakaan libevent di lokasi default.

Tautan unduhan untuk libevent:
http://www.monkey.org/~provos/lievent-2.0.12-stable.tar.gz
tar -xvf libevent-2.0.12-stable .tar.gz
cd lievent-2.0.12-stable
./configure
make
make install

Langkah 2 (memcache)

Instal memcached dengan mengaktifkan libevent.

Tautan unduhan untuk memcached:
http://memcached.googlecode.com/files/memcached-1.4.6.tar.gz
cd /usr/local/src/memcached-1.4.6
------pada 32-bit
ekspor LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
./configure --prefix=/opt /PostgreSQL/9.0/bin/ --with-lievent=/usr/lib
------pada 64-bit
ekspor LD_LIBRARY_PATH=/usr/lib64:/opt/PostgreSQL/9.0/ lib:$LD_LIBRARY_PATH
./configure --prefix=/opt/PostgreSQL/9.0/bin/ --with-lievent=/usr/lib64
make
make install

Langkah 3. (libmemcached)

pgmemcache dibangun di atas libmemcached. Libmemcached mencari lokasi biner memcache, jadi setel jalur ke biner memcache sebelum melanjutkannya.

ekspor PATH=/opt/PostgreSQL/9.0/bin/bin:$PATH
ekspor LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
Tautan unduhan:
http://launchpad.net/libmemcached/1.0/0.50/+download/libmemcached-0.50.tar.gz
cd libmemcached-0.50
./configure
make
lakukan pemasangan

Langkah 4 (pgmemcache)

pgmemcache API akan membantu dalam, berinteraksi dengan memcached seperti menyimpan/mengambil data.

Tautan unduhan:
http://pgfoundry.org/frs/download.php/3018/pgmemcache_2.0.6.tar.bz2
cd pgmemcache
PATH=/opt/PostgreSQL/ 9.0/bin:$PATH buat USE_PGXS=1 pasang
atau
buat
buat pasang

Instalasi akan membuat file pgmemcache.sql dengan semua API untuk berinteraksi dengan memcache di bawah lokasi kontribusi PG. Untuk membuat pgmemcache API, cukup jalankan file pgmemcache.sql di semua database.

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

daftar pgmemcache API:

Catatan: Saat menjalankan file .sql, Anda mungkin menghadapi kesalahan seperti “ISTFATAL:could not load library”/opt/PostgreSQL/9.0/lib/postgresql/pgmemcache.so”:libmemcached.so.8:tidak dapat membuka file objek bersama:Tidak ada file seperti itu atau direktori". Artinya, instance PG tidak dimuat dengan perpustakaan yang baru dibuat. Resolusi, setel PATH dan LD_LIBRARY_PATH dan mulai ulang instance untuk mengenali perpustakaan.

Misalnya:-
ekspor PATH=/opt/PostgreSQL/9.0/bin/bin:$PATH
ekspor LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
$pg_ctl -D $PGDATA mulai ulang

Jika Anda ingin memuat pgmemcache sebagai default ke instance PG Anda, edit file postgresql.conf dan ubah parameter berikut dan mulai ulang cluster.

shared_preload_libraries='pgmemcache'
custom_variable_classes='pgmemcache'

Konfigurasi:
Langkah 1.

Untuk caching data, pertama Anda perlu menginisialisasi memori, setelah memori dialokasikan, kemudian PG backend bertanggung jawab untuk mengikat dan mendorong data ke dalam cache. Di sini, saya telah memulai memcache saya di localhost dengan 512MB pada port default 11211. -d berarti memulai daemon. Semua latihan saya ada di localhost.

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

Catatan:Untuk mengambil data dari cache, setiap backend PostgreSQL harus terlebih dahulu mengikat dan mengambil data.

Langkah 2.

Ikat instance ke port memcache yang sedang berjalan. Setelah mengikat, checkout untuk statistik memcache.

Langkah 3.

Sekarang, waktunya untuk menyimpan data ke dalam memcached, Memcached menggunakan kunci/nilai untuk menyimpan data di memorinya, jadi pastikan tabel Anda memiliki kunci Utama/Unik sehingga pengambilannya akan mudah. Seperti yang disebutkan, ada API yang sangat bagus untuk dimainkan dalam menjaga nilai dan mengaksesnya, dalam contoh saya, saya menggunakan memcache_set() untuk menyimpan nilai dan memcache_get() untuk mengambil data.

Setelah nilai ditetapkan dalam memcached, sekarang tanggung jawab Anda untuk mengikat backend Anda ke memcached dan dengan bantuan pgmemcache API Anda dapat mengakses data. Setiap backend Postgres harus mengikat sebelum mengakses. Silakan temukan contohnya di bawah ini.

Mendapatkan data dari cache

Pemantauan

Jika Anda sangat mahir di linux, Anda dapat menarik informasi maksimum pada memori memcached, namun ada beberapa alat yang disertakan dengan paket sumber memcached seperti alat pemantauan, damemtop dll.,. Saya menggunakan utilitas alat pemantauan untuk memantau memcache.

penggunaan:-
memcached-tool tampilan localhost
memcached-tool dump localhost
memcached-tool localhost stats | grep byte

Contoh:

Upaya kecil dari pihak saya untuk mengatur pgmemcache dan memahami dasar-dasarnya. Semoga bermanfaat. Tetap posting komentar atau saran Anda yang sangat dihargai.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui kolom tabel dengan kolom tabel lain di PostgreSQL

  2. Cara Mengotomatiskan Replikasi dan Failover PostgreSQL 12 dengan repmgr – Bagian 2

  3. Mengintegrasikan Alat untuk Mengelola PostgreSQL dalam Produksi

  4. Apa cara tercepat untuk memotong cap waktu menjadi 5 menit di Postgres?

  5. Bermigrasi dari DB2 ke PostgreSQL - Yang Harus Anda Ketahui