PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cài đặt và sử dụng pgmemcache

Tải trước hoặc lưu vào bộ nhớ đệm bảng trong PostgreSQL là một nhiệm vụ khó khăn, vì PostgreSQL không cung cấp một trình quản lý bộ nhớ cấp đồng bộ hóa lớn duy nhất. Tất cả những ký ức là độc lập. Có thể lưu vào bộ đệm với các công cụ của bên thứ ba như memcached.

pgmemcache là một tập hợp các hàm do người dùng định nghĩa (API) của PostgreSQL cung cấp giao diện cho memcached. pgmemcache, điều kiện tiên quyết là bạn nên cài đặt libmemcached, tuy nhiên, bạn cũng nên cài đặt memcached cùng với nó. Bản trình bày của tôi bao gồm cài đặt / bộ nhớ đệm / giám sát bằng cách sử dụng API pgmemcache. Vì tôi không phải là Nhà phát triển hay Hacker :), vì vậy cách thực hiện của tôi là theo phương pháp rất đơn giản.

Điểm:

  • Lưu trữ giá trị trong bộ nhớ cache trên cơ sở các phương tiện Khóa / Giá trị, nên giữ bảng có khóa chính / khóa duy nhất.
  • Không có dữ liệu dư thừa - Nếu bộ nhớ đệm gặp sự cố hoặc hết dung lượng, các bản ghi và bản cập nhật mới sẽ bị mất.
  • Hỗ trợ tất cả các lệnh đã ghi nhớ (set / get (single / multi) / delete / Replace / incr / stats)
  • Sau khi giữ dữ liệu vào bộ nhớ đệm và nếu bạn bỏ bảng khỏi chương trình phụ trợ, bộ nhớ đệm sẽ không gây ra bất kỳ lỗi nào. Tất cả là do bạn quản lý, cách bạn duy trì nó.
  • Không có khả năng lặp lại dữ liệu hoặc xác định khóa nào đã được lưu trữ.
  • Bạn không bao giờ có thể hạ máy chủ đã lưu trong bộ nhớ cache hoặc thêm một máy chủ mới vào nhóm khi mọi người đang chơi hoặc kết nối.
  • Nếu quá trình cập nhật nền dừng lại vì bất kỳ lý do gì, các bản cập nhật sẽ không xảy ra và có khả năng máy chủ memcached có thể lấp đầy.
  • Mọi chương trình phụ trợ PostgreSQL phải liên kết với cổng memcached trước khi truy cập dữ liệu.
  • Memcached chạy trên cổng mặc định 11211

Điều kiện tiên quyết:

  1. PostgreSQL 8.4. trở lên
  2. tự do
  3. memcached
  4. libmemcached
  5. pgmemcache
  6. Giám sát-Công cụ (công cụ giám sát, damemtop, v.v.,)

Cài đặt:
Bước 1 (tự do)

Libevent API rất quan trọng khi định cấu hình pgmemcache, tôi muốn có các thư viện ở bước cài đặt đầu tiên. Vì vậy, hãy bắt đầu với việc định cấu hình thư viện libevent ở vị trí mặc định.

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

Bước 2 (ghi nhớ)

Cài đặt memcached bằng cách bật giải phóng.

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

Bước 3. (libmemcached)

pgmemcache được xây dựng trên libmemcached. Libmemcached tìm kiếm vị trí nhị phân memcache, vì vậy hãy đặt đường dẫn đến các tệp nhị phân memcached trước khi tiếp tục.

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

Bước 4 (pgmemcache)

API pgmemcache sẽ hỗ trợ, tương tác với memcached như bộ nhớ đệm / truy xuất dữ liệu.

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

Cài đặt sẽ tạo tệp pgmemcache.sql với tất cả API để tương tác với memcache trong vị trí đóng góp PG. Để tạo API pgmemcache, chỉ cần tạo tệp pgmemcache.sql trong tất cả cơ sở dữ liệu.

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

Danh sách của pgmemcache API:

Lưu ý: Trong khi thực thi tệp .sql, bạn có thể gặp phải lỗi như “ISTFATAL:không thể tải thư viện“ /opt/PostgreSQL/9.0/lib/postgresql/pgmemcache.so ”:libmemcached.so.8:không thể mở tệp đối tượng được chia sẻ:Không có tệp như vậy hoặc danh mục". Có nghĩa là, phiên bản PG không được tải với thư viện mới được tạo. Giải pháp, đặt PATH và LD_LIBRARY_PATH và khởi động lại phiên bản để nhận dạng các thư viện.

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

Nếu bạn muốn tải pgmemcache làm mặc định cho phiên bản PG của mình, hãy chỉnh sửa tệp postgresql.conf và thay đổi các thông số sau và khởi động lại cụm.

shared_preload_libraries='pgmemcache'
custom_variable_classes='pgmemcache'

Cấu hình:
Bước 1.

Đối với dữ liệu bộ nhớ đệm, trước tiên bạn cần khởi tạo bộ nhớ, sau khi bộ nhớ được phân bổ, PG phụ trợ sau này sẽ chịu trách nhiệm liên kết và đẩy dữ liệu vào bộ đệm. Ở đây, tôi đã khởi động memcache của mình trên localhost với 512MB trên cổng mặc định 11211. -d có nghĩa là khởi động daemon. Tất cả bài tập của tôi là trên localhost.

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

Lưu ý:Để truy xuất dữ liệu từ bộ nhớ cache, mọi chương trình phụ trợ PostgreSQL trước tiên phải liên kết và truy xuất dữ liệu.

Bước 2.

Liên kết phiên bản với cổng memcache đang chạy. Sau khi ràng buộc, hãy kiểm tra số liệu thống kê đã ghi nhớ.

Bước 3.

Bây giờ, đã đến lúc lưu dữ liệu vào bộ nhớ cache, Memcached sử dụng các khóa / giá trị để lưu trữ dữ liệu trong bộ nhớ của nó, vì vậy hãy đảm bảo bảng của bạn có khóa Chính / Duy nhất để việc truy xuất sẽ dễ dàng. Như đã đề cập, có nhiều API rất tốt để giữ giá trị và truy cập chúng, trong ví dụ của tôi, tôi sử dụng memcache_set () để giữ giá trị và memcache_get () để truy xuất dữ liệu.

Sau khi giá trị được đặt trong memcached, bây giờ bạn có trách nhiệm ràng buộc phần phụ trợ của mình với memcached và với sự trợ giúp của API pgmemcache, bạn có thể truy cập dữ liệu. Mỗi phần phụ trợ Postgres phải ràng buộc trước khi truy cập. Vui lòng tìm ví dụ bên dưới.

Lấy dữ liệu từ bộ nhớ đệm

Giám sát

Nếu bạn rất giỏi về linux, bạn có thể lấy tối đa thông tin trên bộ nhớ đệm, tuy nhiên có rất ít công cụ đi kèm với gói nguồn memcached như công cụ giám sát, damemtop, v.v.,. Đang sử dụng tiện ích công cụ giám sát để theo dõi memcache.

Cách sử dụng
usage:-
memcached-tool localhost display
memcached-tool localhost dump
memcached-tool localhost stats | grep bytes

Ví dụ:

Một nỗ lực nhỏ từ phía tôi để thiết lập pgmemcache và hiểu những điều cơ bản. Hy vọng nó là hữu ích. Tiếp tục đăng nhận xét hoặc đề xuất của bạn được đánh giá cao.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LỖI:các hàm trong biểu thức chỉ mục phải được đánh dấu là CÓ THỂ NGAY LẬP TỨC trong Postgres

  2. Làm thế nào để liệt kê các bản ghi có ngày từ 10 ngày qua?

  3. Thêm chỉ báo thứ tự cho một ngày trong PostgreSQL

  4. Giá trị sử dụng PostgreSQL từ hàng trước nếu thiếu

  5. Lưu trữ json, jsonb, hstore, xml, enum, ipaddr, v.v. không thành công với cột x thuộc kiểu json nhưng biểu thức có kiểu ký tự khác nhau