Skip to main content

A utility package for managing Redis keys.

Project description

Redis Management

A utility package for managing Redis keys in Python. This package provides an easy-to-use interface for interacting with Redis, including setting, getting, and managing expiration of keys.

Features

  • Manage public keys in Redis
  • Set and get values (including JSON and boolean)
  • Create and validate OTP codes
  • Set and get expiration times for keys
  • Check if a key exists and delete it

Requirements

Installation

You can install this package directly from GitHub:

pip install git+https://github.com/AAbbasRR/redis-manager.git

Alternatively, clone the repository and install manually:

git clone https://github.com/AAbbasRR/redis-manager.git
cd my_redis_utils
pip install .

Configuration

By default, the package uses localhost and the default Redis port (6379). You can configure the Redis connection using python-decouple or by providing the parameters directly.

Configuration Keys

  • REDIS_HOST: The hostname or IP address of the Redis server. Default is localhost.
  • REDIS_PORT: The port number on which the Redis server is listening. Default is 6379.
  • REDIS_DB: The Redis database number to use. Default is 0.
  • FERNET_KEY: Before using the application, it's essential to set up the FERNET_KEY. This key is used for encrypting and decrypting sensitive data.

Example Configuration using python-decouple

  1. Install python-decouple:

    pip install python-decouple
    
  2. Create a .env file in your project root and add your Redis configuration:

    REDIS_HOST=localhost
    REDIS_PORT=6379
    REDIS_DB=0
    FERNET_KEY=YourGeneratedKeyHere
    
  3. Use the configuration in your code:

    from redis_management.redis_manager import RedisManager
    redis_manager = RedisManager(identifier="user123", key="session_token")
    

Generating the FERNET_KEY

To generate a FERNET_KEY, you can use the following command in your terminal:

python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"

Usage

Example Code

from redis_management.redis_manager import RedisManager

Initialize RedisManager with identifier and key

redis_manager = RedisManager(identifier="user123", key="session_token")

Set a value

redis_manager.set_value("some_value")

Get a value

value = redis_manager.get_value()
print(value)

Set a JSON value

redis_manager.set_json_value({"key": "value"})

Get a JSON value

json_value = redis_manager.get_json_value()
print(json_value)

Create and set OTP key

otp_code = redis_manager.create_and_set_otp_key()
print(otp_code)

Validate OTP code

is_valid = redis_manager.validate(otp_code)
print(is_valid)

Check if key exists

exists = redis_manager.exists()
print(exists)

Delete the key

redis_manager.delete()

Exception Handling

The package provides custom exceptions for better error handling:

  • RedisException: Base exception for Redis errors.
  • KeyNotFoundException: Raised when a key is not found in Redis.
  • InvalidKeyException: Raised when an invalid key is provided.

Example:

from redis_management.redis_manager import RedisManager
from redis_management.exceptions import KeyNotFoundException

try:
    redis_manager = RedisManager(identifier="user123", key="non_existent_key")
    value = redis_manager.get_value()
except KeyNotFoundException:
    print("Key not found in Redis.")

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.

Author

Abbas Rahimzadeh - arahimzadeh79@gmail.com

Acknowledgments

Special thanks to the open-source community for their valuable contributions and resources.

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

redis_management-1.1.0.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

redis_management-1.1.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file redis_management-1.1.0.tar.gz.

File metadata

  • Download URL: redis_management-1.1.0.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for redis_management-1.1.0.tar.gz
Algorithm Hash digest
SHA256 bc034bf5fdfab59aa0517875fd347339f03661fb2674fd75a9d55aa5201fdc02
MD5 e0d62be7c4c870c6c57256e0c3d69e7f
BLAKE2b-256 25a2220110e36d3720b92d3756e91173a6fe9d600513cbbc4b1a7686cbd3cd41

See more details on using hashes here.

File details

Details for the file redis_management-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for redis_management-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 54a35a2254d44076759fd70c0769ead22f4525e017f856af391eab0069e1c267
MD5 6148673562a6591de5a7657123b622fb
BLAKE2b-256 2f0afe254fac4be39d304d080b6993507d2eea82986127b629345d925b2313a9

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