Skip to content

ionelmc/django-redisboard

Repository files navigation

Overview

docs Documentation Status
tests
GitHub Actions Build Status Requirements Status
Coverage Status Coverage Status
package
PyPI Package latest release PyPI Wheel Supported versions Supported implementations
Commits since latest release

Redis monitoring and inspection drop-in application using django admin.

  • Free software: BSD 2-Clause License

Features

  • Sever statistics in the admin changelist
  • Key summary in the inspect view
  • Value introspection with pagination for lists and sorted sets

Don't have a django project?

If you just want to run redisboard quickly do this:

pip install django-redisboard
redisboard

Don't want to run on 0.0.0.0:8000? Run:

redisboard ip:port

Want a password that ain't random (you might need to rm -rf ~/.redisboard first tho)? Run:

redisboard --password=foobar

Installation guide

Install from pypi, with pip:

pip install django-redisboard

Add redisboard to INSTALLED_APPS:

INSTALLED_APPS += ("redisboard", )

After that you need to run:

manage.py migrate

Then you can add redis servers in the admin. You will see the stats in the changelist.

Redisboard has few css tweaks for the pages (they are optional). If you use staticfiles just run:

manage.py collectstatic

If you do not use django.contrib.staticfiles you must manually symlink the site-packages/redisboard/static/redisboard dir to <your media root>/redisboard.

Optional Django settings

Setting name Description

REDISBOARD_CONNECTION_POOL_OPTIONS

Extra connection options. Default: {}. Example:

python

REDISBOARD_CONNECTION_POOL_OPTIONS = {'socket_timeout': 60, 'socket_connect_timeout': 10}

REDISBOARD_DECODER_CLASS Default: 'redisboard.data.UTF8BackslashReplaceDecoder'.
REDISBOARD_DISPLAY_CLASS Default: 'redisboard.data.TabularDisplay'.
REDISBOARD_VALUE_QUERY_CLASS Default: 'redisboard.data.ValueQuery'.
REDISBOARD_LENGTH_QUERY_CLASS Default: 'redisboard.data.LengthQuery'.

REDISBOARD_DETAIL_FILTERS

A list of regular expressions to match against the keys in the server details colum. Eg, to only show uptime and list of active databases:

python

REDISBOARD_DETAIL_FILTERS = ['uptime.', 'db.']

To show all the details just use:

python

REDISBOARD_DETAIL_FILTERS = ['.*']

REDISBOARD_DETAIL_CONVERTERS

Mapping of regexes to functions to convert those values. Checkout the sourcecode for what's available.

REDISBOARD_SLOWLOG_NUM Number of slowlog entries to show. Default: 10.

REDISBOARD_SCAN_COUNT

Count used for the various scan commands. Affects pagination for key list and key details. Default: 1000.

REDISBOARD_STRING_PAGINATION Count used just for paginating string values. Default: 10000

Screenshots

Screenshot of the changelist:

Screenshot of the changelist

Screenshot of inspecting:

Screenshot of inspecting

Screenshot of inspecting a sorted set:

Screenshot of inspecting a sorted set

Screenshot of inspecting a db:

Screenshot of inspecting a db

Screenshot of inspecting a big string:

Screenshot of inspecting a big string

Screenshot of inspecting a hash:

Screenshot of inspecting a hash

Screenshot of inspecting a hash with binary values:

Screenshot of inspecting a hash with binary values

Screenshot of inspecting a binary string:

Screenshot of inspecting a binary string

Screenshot of inspecting a binary key:

Screenshot of inspecting a binary key

Screenshot of inspecting a set:

Screenshot of inspecting a set

Documentation

https://django-redisboard.readthedocs.org/en/latest/

Development

To run the all tests run:

tox