Skip to main content

A PostgreSQL wrapper similar to diskcache

Project description

PgCache and AsyncPgCache Usage Guide

Introduction

PgCache and AsyncPgCache are cache management classes for PostgreSQL databases. PgCache provides synchronous operations, while AsyncPgCache offers asynchronous operations. They allow you to cache data in a PostgreSQL database and provide functionalities to set, get, delete, and import/export cache entries.

Installation

Before using these classes, ensure you have the following Python packages installed:

pip install -r requirements.txt
or pip install pg-cache

Usage

PgCache

Initialization

from pg_cache import PgCache

db_url = "postgresql://user:password@localhost/dbname"
table_name = "cache_table"
cache = PgCache(db_url, table_name)
cache.init_db()

Set Cache

cache.set("my_key", "my_value", expire_after_seconds=3600)

Set Bulk Cache

entries

= [
    {"key": "key1", "value": "value1"},
    {"key": "key2", "value": "value2"}
]
cache.set_bulk(entries, expire_after_seconds=3600)

Get Cache

value = cache.get("my_key")

Delete Cache

cache.delete("my_key")

Delete Bulk Cache

keys = ["key1", "key2"]
cache.delete_bulk(keys)

Flush Cache

cache.flushdb()

Export Cache to File

cache.export_to_file("cache_backup.json")

Import Cache from File

cache.import_from_file("cache_backup.json")

AsyncPgCache

Initialization

import asyncio
from your_module import AsyncPgCache

db_url = "postgresql+asyncpg://user:password@localhost/dbname"
table_name = "cache_table"
cache = AsyncPgCache(db_url, table_name)


async def init():
    await cache.init_db()


asyncio.run(init())

Set Cache

async def set_cache():
    await cache.set("my_key", "my_value", expire_after_seconds=3600)


asyncio.run(set_cache())

Set Bulk Cache

entries = [
    {"key": "key1", "value": "value1"},
    {"key": "key2", "value": "value2"}
]


async def set_bulk_cache():
    await cache.set_bulk(entries, expire_after_seconds=3600)


asyncio.run(set_bulk_cache())

Get Cache

async def get_cache():
    value = await cache.get("my_key")
    print(value)


asyncio.run(get_cache())

Delete Cache

async def delete_cache():
    await cache.delete("my_key")


asyncio.run(delete_cache())

Delete Bulk Cache

keys = ["key1", "key2"]


async def delete_bulk_cache():
    await cache.delete_bulk(keys)


asyncio.run(delete_bulk_cache())

Flush Cache

async def flush_cache():
    await cache.flushdb()


asyncio.run(flush_cache())

Export Cache to File

async def export_cache():
    await cache.export_to_file("cache_backup.json")


asyncio.run(export_cache())

Import Cache from File

async def import_cache():
    await cache.import_from_file("cache_backup.json")


asyncio.run(import_cache())

Logging

You can control the logging level by setting the log_level parameter when initializing PgCache or AsyncPgCache. For example:

cache = PgCache(db_url, table_name, log_level=logging.INFO)

Conclusion

PgCache and AsyncPgCache provide powerful cache management functionalities suitable for applications that need to cache data in a PostgreSQL database. With both synchronous and asynchronous implementations, you can choose the appropriate method based on your needs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pg_cache-0.1.6.3.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

pg_cache-0.1.6.3-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file pg_cache-0.1.6.3.tar.gz.

File metadata

  • Download URL: pg_cache-0.1.6.3.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.14

File hashes

Hashes for pg_cache-0.1.6.3.tar.gz
Algorithm Hash digest
SHA256 c7bb399106bb2835c8a15d285733871f9d287fd6be973c90d5dd7223398e5176
MD5 7a16012714228ae7a117cf22b9f763f6
BLAKE2b-256 04130c6ab0cbb6bf542db4b977e060e60796bf316136323748394f1a1df23fb4

See more details on using hashes here.

File details

Details for the file pg_cache-0.1.6.3-py3-none-any.whl.

File metadata

  • Download URL: pg_cache-0.1.6.3-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.14

File hashes

Hashes for pg_cache-0.1.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f12edb4478995a766b6b44fc8acd14f5fcfbb8291211b5e5268b24662aeb9ed0
MD5 c414c00164f8d36e3c1342ab42e30ef9
BLAKE2b-256 da49b1235f3f87bcfcc86f2fe3908faa7589a82555284443411a7b431d50b836

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page