hollodotme / readis
A web interface to read data from redis server(s)
Requires
- php: >=7.1
- ext-intl: *
- ext-redis: *
- icehawk/icehawk: ~2.2.0
- twig/twig: ~2.0
Requires (Dev)
- ext-xdebug: >=2.9.0
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2024-12-10 02:28:30 UTC
README
readis
A web interface to read data from redis server(s)
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.
- SSH into your webserver.
$ git clone https://github.com/hollodotme/readis.git /var/www/readis
$ cd /var/www/readis
$ git checkout v2.0.0
$ composer install -a --no-dev --no-interaction
$ cp config/app.sample.php config/app.php
- Set up the baseUrl in
config/app.php
(Should be the full HTTP URL with path, e.g.https://www.example.com/readis/
) $ cp config/servers.sample.php config/servers.php
- Set up all server instances in
config/servers.php
- 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.
Regarding auth/password:
If your redis server is not started with the requirepass
option and a password, the value for the auth
config value
must be null
(not an empty string or false
).
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:
$ git clone https://github.com/hollodotme/readis.git
$ cd readis/
$ composer update -o
$ cp config/app.sample.php config/app.php
$ cp config/servers.sample.php config/servers.php
$ php -S 127.0.0.1:8080 -t public/
(starts local webserver)$ docker-compose up -d redis
(starts redis-server instance onlocalhost:6379
)- Open: http://127.0.0.1:8080