Skip to main content

example branch parameter

Redis cache for Python

  • Simple python redis cache library, mostly used for distributed caching, where applications is running on separated processes such as Gunicorn workers, K8s replicas, Cloud, ...
  • Asyncio Support for FastAPI, Starlette

Requirements

  • Redis 5+
  • Python 3.6+

Installation

$ pip install redis-cache-py

Simple usage

from redis_cache_py import RedisCache

# init redis_cache instance and connection
# make sure you have redis running on `127.0.0.1:6379`
redis_cache = RedisCache(
    host="127.0.0.1",
    port=6379,
)

@redis_cache.cache(ttl=10)  # Expire after 10 seconds
def concate_list(a: list, b: list):
    print("This function is called")
    return a + b

result =  concate_list([1, 2, 3], [4, 5, 6])
print(result)
# This function is called
# [1, 2, 3, 4, 5, 6]

# Now result is cached, next time you call this function, result will returned
# from redis
result =  concate_list([1, 2, 3], [4, 5, 6])
print(result)
# [1, 2, 3, 4, 5, 6]

Asynchronous with asyncio

import asyncio
from redis_cache_py.asyncio import AsyncRedisCache

# init redis_cache instance and connection
# Make sure you have redis running on `127.0.0.1:6379`
redis_cache = AsyncRedisCache(
    host="127.0.0.1",
    port=6379,
    verbose=1  # Turn on logging for demonstration, set to 0 for silent caching
)

@redis_cache.aio_cache(ttl=10)  # Expire after 10 seconds
async def concate_list(a: list, b: list):
    print("This function is called")
    return a + b

async def test_async_cache():
    result = await concate_list([1, 2, 3], [4, 5, 6])
    print(result)

    # Now the result is cached
    result2 = await concate_list([1, 2, 3], [4, 5, 6])

    print(result2)

loop = asyncio.get_event_loop()
loop.run_until_complete(test_async_cache())

# Output:
# This function is called
# [1, 2, 3, 4, 5, 6]
# [1, 2, 3, 4, 5, 6]

Advanced usage

for further examples and use cases please visit examples

Testing

NOTE: Please make sure you have redis running on 127.0.0.1:6379 to run test.

$ python3 -m unittest discover tests

Download files

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

Source Distribution

redis-cache-py-0.0.2.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

redis_cache_py-0.0.2-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file redis-cache-py-0.0.2.tar.gz.

File metadata

  • Download URL: redis-cache-py-0.0.2.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.10

File hashes

Hashes for redis-cache-py-0.0.2.tar.gz
Algorithm Hash digest
SHA256 eb0de3f4e6f7aedd53f5b56fbdd34be9c035e8c93313ab167ccd9e2bc8defc16
MD5 e614ce7c9a1ffe90eca699d4f0b2b146
BLAKE2b-256 2087f9504429867a83987667c56260c5e2a98ca52e969f5a2986ad7e275b33b2

See more details on using hashes here.

File details

Details for the file redis_cache_py-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: redis_cache_py-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.10

File hashes

Hashes for redis_cache_py-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eb32e74993fbb27e81f50e7259935b1fbc65255e6758f305c2fb584525d9faa3
MD5 81418c58d3337a7a0663d12d81c785dd
BLAKE2b-256 c7c899f637cadd0d9cc2e06d5cfa152e0d862c9fbc427e38b365d71dbc0fdae4

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page