Lightweight web frontend in PHP for reading data, stats and config from multiple redis servers.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.github Update docs, changelog & contribution guide, bumping v2.0.0 Apr 3, 2018
.redis
build
config Update sample configs Mar 29, 2018
public
src
tests
.gitignore
.travis.yml
CHANGELOG.md
LICENSE Add contributors to license Jun 27, 2018
README.md
composer.json
composer.lock
docker-compose.yml Fix docker compose config May 13, 2018

README.md

Build Status Coverage Status Latest Stable Version License

readis

A web interface to read data from redis server(s)

Public demo

See the public demo on readis.hollo.me

Docker image

You can find a ready to run docker image here.

docker pull hollodotme/readis

Features

  • Setup / Selection for multiple redis servers
  • Mapping database keys to expressive database names
  • Selection of a database inside a redis server
  • Searching for keys (with placeholders) inside a database
  • Listing of found keys with variable limit
  • Basic information about keys
  • Viewing the content of all key types
  • Viewing all elements/members/fields in lists, (sorted) sets and hashes all at once
  • Prettified JSON view, if value is a compact JSON string
  • Listing of slow logs
  • Table with all the current server instance information / stats
  • Table with all the current server configs
  • Real-time server monitor for connected clients and I/O in KB/sec.

Requirements

  • Webserver (nginx, apache2, etc.)
  • PHP >= 7.1 with phpredis extension
  • composer

Installation

Assuming you'll install readis under /var/www/readis on your server.

  1. SSH into your webserver.
  2. $ git clone https://github.com/hollodotme/readis.git /var/www/readis
  3. $ cd /var/www/readis
  4. $ git checkout v2.0.0
  5. $ composer install -a --no-dev --no-interaction
  6. $ cp config/app.sample.php config/app.php
  7. Set up the baseUrl in config/app.php (Should be the full HTTP URL with path, e.g. https://www.example.com/readis/)
  8. $ cp config/servers.sample.php config/servers.php
  9. Set up all server instances in config/servers.php
  10. Set up your webserver VHost with document root /var/www/readis/public

Sample app configuration

  • File: config/app.php

Using readis under a separate (sub-)domain:

<?php

return [
	'baseUrl' => 'http://readis.example.com',
];

Using readis under a path of a domain:

<?php

return [
	'baseUrl' => 'http://www.example.com/readis',
];

Sample server configuration

  • File: config/servers.php
<?php

return [
	[
		'name'          => 'Local redis server 1',
		'host'          => '127.0.0.1',
		'port'          => 6379,
		'timeout'       => 2.5,
		'retryInterval' => 100,
		'auth'          => null,
		'databaseMap'   => [
			'0' => 'Sessions',
			'1' => 'Sample Data',
			// ...
		],
	],
	/*
	[
		'name'          => 'Local redis server 2',
		'host'          => '127.0.0.2',
		'port'          => 6379,
		'timeout'       => 2.5,
		'retryInterval' => 100,
		'auth'          => null,
		'databaseMap'   => [
			'0' => 'Sessions',
			'1' => 'Sample Data',
			// ...
		],
	],
	*/
];

You can map the numeric database keys to plain text names. Keys that were not mapped will still be displayed as Database [KEY].

Please note: If the CONFIG command is disabled in your redis server, the database map becomes the fallback listing of available databases.

Sample nginx configuration

server {
	listen 80;
	
	# Change the domain name
	server_name www.your-domain.net;

	root /var/www/readis/public;
	index index.php;

	location / {
		try_files $uri $uri/ /index.php?$args;
	}

	location ~ \.php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	}
}

That's it.

Run locally

In order to run readis locally, follow these steps:

  1. $ git clone https://github.com/hollodotme/readis.git
  2. $ cd readis/
  3. $ composer update -o
  4. $ cp config/app.sample.php config/app.php
  5. $ cp config/servers.sample.php config/servers.php
  6. $ php -S 127.0.0.1:8080 -t public/ (starts local webserver)
  7. $ docker-compose up -d (starts redis-server instance on localhost:6379)
  8. Open: http://127.0.0.1:8080