Skip to main content
Travis CI

Flask-Redis-Sentinel provides support for connecting to Redis using Sentinel and also supports connecting to Redis without it.

  • Supports Python 2.7 and 3.3+

  • Licensed using Apache License 2.0

Installation

Install with pip:

pip install Flask-Redis-Sentinel

Basic usage

from flask_redis_sentinel import SentinelExtension

redis_sentinel = SentinelExtension()
redis_connection = redis_sentinel.default_connection

# Later when you create application
app = Flask(...)
redis_sentinel.init_app(app)

You can configure Redis connection parameters using REDIS_URL Flask configuration variable with redis+sentinel URL scheme:

redis+sentinel://localhost:26379[,otherhost:26379,...]/mymaster/0
redis+sentinel://localhost:26379[,otherhost:26379,...]/mymaster/0?socket_timeout=0.1
redis+sentinel://localhost:26379[,otherhost:26379,...]/mymaster/0?sentinel_socket_timeout=0.1
redis+sentinel://:sentinel-secret-password@localhost:26379[,otherhost:26379,...]/mymaster/0?sentinel_socket_timeout=0.1

The extension also supports URL schemes as supported by redis-py for connecting to an instance directly without Sentinel:

redis://[:password]@localhost:6379/0
rediss://[:password]@localhost:6379/0
unix://[:password]@/path/to/socket.sock?db=0

Flask-And-Redis style config variables are also supported for easier migration, but the extension will log a DeprecationWarning:

REDIS_HOST = 'localhost'
REDIS_PORT = 6379
REDIS_DB = 0

In case both REDIS_URL and other variables are present, the URL is used.

Creating multiple connection pools using a single Sentinel cluster

from flask_redis_sentinel import SentinelExtension

redis_sentinel = SentinelExtension()
master1 = redis_sentinel.master_for('service1')
master2 = redis_sentinel.master_for('service2')
slave1 = redis_sentinel.slave_for('service1')

Accessing redis-py’s Sentinel instance

from flask_redis_sentinel import SentinelExtension
from flask import jsonify, Flask

app = Flask('test')

redis_sentinel = SentinelExtension(app=app)

@app.route('/')
def index():
    slaves = redis_sentinel.sentinel.discover_slaves('service1')
    return jsonify(slaves=slaves)

Change log

v2.0.0

  • Connections are now thread-local to avoid race conditions after Redis master failover

  • Removed support for REDIS_{HOST, PORT, DB} config variables

v1.0.0

  • Moved URL handling code to a separate library, redis_sentinel_url

  • Backward-incompatible change:

    # Old
    redis+sentinel://host:port/service?slave=true

    Should now be written as:

    # New
    redis+sentinel://host:port/service?client_type=slave

v0.2.0

  • Use config variables other than REDIS_{HOST, PORT, DB} even if REDIS_URL is used

  • Minor refactoring

v0.1.0

  • Initial release

Download files

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

Source Distribution

Flask-Redis-Sentinel-2.0.1.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

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

Flask_Redis_Sentinel-2.0.1-py2.py3-none-any.whl (6.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file Flask-Redis-Sentinel-2.0.1.tar.gz.

File metadata

File hashes

Hashes for Flask-Redis-Sentinel-2.0.1.tar.gz
Algorithm Hash digest
SHA256 a17ef135f607f1531fd80a283368ef5f11ecf5a4237b48fd192549e8c8998f02
MD5 e8ffb50624f727f7720a139c5bfadf9f
BLAKE2b-256 7f11ab88b51564ea413c94c5a6b31df6b2f5b074d54c2952496734bf73bb0130

See more details on using hashes here.

File details

Details for the file Flask_Redis_Sentinel-2.0.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for Flask_Redis_Sentinel-2.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0deb2bef4977144a008bae2457c931ff8b1f3f97dce94c09003ed360e39f89a4
MD5 e48ec6fddcdbc9bd0f7a39d3e725d0ee
BLAKE2b-256 2a60a19904c7342ac87f0343e6b3476fcaaf62015eb5443e1424d6830359552f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 files

2.0.0

1.0.0

2 files

0.2.0

0.1.0

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