Simple web interface to manage Redis databases.

Last update: May 18, 2022

phpRedisAdmin

phpRedisAdmin is a simple web interface to manage Redis databases. It is released under the Creative Commons Attribution 3.0 license. This code is being developed and maintained by Erik Dubbelboer.

You can send comments, patches, questions here on github or to [email protected].

Example

You can find an example database at http://dubbelboer.com/phpRedisAdmin/

Installing/Configuring

To install phpRedisAdmin through composer you need to execute the following commands:

curl -s http://getcomposer.org/installer | php
php composer.phar create-project -s dev erik-dubbelboer/php-redis-admin path/to/install

You may also want to copy includes/config.sample.inc.php to includes/config.inc.php and edit it with your specific redis configuration.

Instead of using composer, you can also do a manual install using:

git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git
cd phpRedisAdmin
git clone https://github.com/nrk/predis.git vendor

Docker Image

A public phpRedisAdmin Docker image is available on Docker Hub automatically built from latest source. The file includes/config.environment.inc.php is used as the configuration file to allow environment variables to be used as configuration values. Example:

docker run --rm -it -e REDIS_1_HOST=myredis.host -e REDIS_1_NAME=MyRedis -p 80:80 erikdubbelboer/phpredisadmin

Also, a Docker Compose manifest with a stack for testing and development is provided. Just issue docker-compose up --build to start it and browse to http://localhost. See docker-compose.yml file for configuration details.

Environment variables summary

  • REDIS_1_HOST - define host of the Redis server
  • REDIS_1_NAME - define name of the Redis server
  • REDIS_1_PORT - define port of the Redis server
  • REDIS_1_AUTH - define password of the Redis server
  • ADMIN_USER - define username for user-facing Basic Auth
  • ADMIN_PASS - define password for user-facing Basic Auth

TODO

  • Encoding support for editing
  • Javascript sorting of tables
  • Better error handling
  • Move or Copy key to different server
  • Importing JSON
  • JSON export with seperate objects based on your seperator

Credits

Icons by http://p.yusukekamiyamane.com/ (https://github.com/yusukekamiyamane/fugue-icons/tree/master/icons-shadowless)

Favicon from https://github.com/antirez/redis-io/blob/master/public/images/favicon.png

GitHub

https://github.com/erikdubbelboer/phpRedisAdmin
Comments
  • 1. Add Docker support

    • Dockerfile initial version
    • Environment-sourcing config file

    How to test:

    $ docker run -d --name=redistest redis redis-server
    $ docker run -d --name=phpredisadmin -e ADMIN_USER=admin -e=ADMIN_PASS=admin -e REDIS_1_HOST=redis --link=redistest:redis -p 80:80 pataquets/phpredisadmin
    

    After these, browse to http://localhost

    If merged, I can help with either:

    • Setting up a public Docker Hub image
    • Link upstream Github repo to my Docker Hub account

    With any of these, an 'automated build' can be set up on Docker Hub that will trigger an image rebuild on each Github commit.

    Reviewed by pataquets at 2015-07-18 14:29
  • 2. Questionable Feature Request: Handle serialization?

    I use binary serialization in redis.

    It has the disadvantage that you need to handle more complex data than just strings but a number of serious advantages as well over using JSON and just making the string editable.

    Advantages:

    • Faster.
    • Uses much less memory.
    • Preserves types accurately (arrays).
    • Does not have problems with character sets/binary data.

    My work around for this is to make my encoder json -> igbinary and the decoder vice versa.

    You could use the same solution with the serializer functions configurable (msgpack, igbinary, php, json, json pretty, etc).

    This loses a key advantage of type preservation.

    The catch 22 is that for the front end it would really want to be in JSON anyway so you still bump into those problems with PHP and indeterminate array type or JSON/JS and their charset issues. Though at the very least using a common JSON editing library would be nice.

    On a side note, you have ?> at the end of files and then white space. This forces the use of output buffering even when it may not be necessary which increases memory usage a lot.

    It is best to just not have the closing tag in include files even if you intend not to have a new line. Some tools like a new line at the end so people tend to add one as good practice. You cannot do this with ?> at the end of an include file without the ob.

    Another side note, my json solution works well enough, though in your display you do not use white space pre.

    Finally, I have some massive serialized objects but there is no way to effectively deal with these here.

    It looks like early work but the first tool I've found where I am able to edit redis that is igbinary backed with relative easy and minimal setup cost.

    Reviewed by joeyhub at 2015-03-11 22:16
  • 3. Uncaught RangeError: Maximum call stack size exceeded

    I have a javascript error : Uncaught RangeError: Maximum call stack size exceeded when I load a server with more than 60k keys in a subset

    I think the javascript engine goes mad, the error pops out of jquery.js file

    Reviewed by jrmgx at 2014-07-02 10:49
  • 4. Cannot Edit Keys Anymore

    Hi please help me with this. It's quite urgent.

    For some reason, I can no longer edit keys with phpRedisAdmin. I log in fine with my usual credentials , however I come to edit a key, it brings the login prompt again and if I enter my usual credentials again, it doesn't work.

    It's like my admin account has turned into read-only mode. Is this even possible?

    Reviewed by Supersta at 2014-06-29 21:26
  • 5. dependence predis is deprecated

    Hi, I wondered why you don’t have streams (5.0) support. I cloned the repo and thought to add it myself, but found that some methods do not work, for example

    case 'stream':
    	      echo $fullkey;
                  $len = $redis->xLen($fullkey);
                  break;
    

    Fatal error: Uncaught Predis\ClientException: Command 'XLEN' is not a registered Redis command.

    I see composer dependence "predis/predis": "1.1.x-dev" (2017-07-12) and https://github.com/phpredis/phpredis (newer). They abandoned the composer. Now it is distributed as a compiled library. Please replace the composer dependency in the project with the compiled one so that you can develop the project further, working with the latest redis.

    Reviewed by jenokizm at 2019-12-15 09:45
  • 6. keys that end with the separator show up as folder and

    Sorry that I've been opening a few issues over the past few days. But it means that someone is using your software. ;-)

    When I create a key called test:, it looks like this:

    image

    It has something to do with the way the namespaces are built. Maybe you have a quick fix, since you wrote the code in the first place.

    Reviewed by tessus at 2019-11-18 05:47
  • 7. docker image not supply setting redis password

    hi , i want to use the project docker image , but my redis has password , i reading the config.sample.inc.php, and did fount anywhere to setting my password . it that say the docker image not supply the function ? and what should i do to add the function for docker image, thank you

    Reviewed by guodidi at 2018-01-24 11:45
  • 8. Request: Refresh keys without refreshing page/frame

    Sometimes I'm looking at a specific set of keys, e.g. 'failed' below, and I want to refresh/update the values within they key without refreshing the whole page.

    image

    Would it be possible to have a refresh button next to the key name and ajax them in? Or assign an anchor tag to each key, and have the refresh button refresh the page but jump down to the anchor you clicked and auto-expand the node?

    (This is really just an ease-of-use suggestion; otherwise I am finding this to be a really handy tool)

    Reviewed by deancsmith at 2014-11-06 10:56
  • 9. Serialization display problems

    @erikdubbelboer I use the following code serialization, but view 'null'

    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    
    import net.sf.ehcache.CacheException;
    import org.nustaq.serialization.FSTObjectInput;
    import org.nustaq.serialization.FSTObjectOutput;
    
    /**
     * 使用 FST 实现序列化
     * @author winterlau
     */
    public class FSTSerializer implements Serializer {
    
        @Override
        public String name() {
            return "fst";
        }
    
        @Override
        public byte[] serialize(Object obj) throws IOException {
            ByteArrayOutputStream out = null;
            FSTObjectOutput fout = null;
            try {
                out = new ByteArrayOutputStream();
                fout = new FSTObjectOutput(out);
                fout.writeObject(obj);
                fout.flush();
                return out.toByteArray();
            } finally {
                if(fout != null)
                try {
                    fout.close();
                } catch (IOException e) {}
            }
        }
    
        @Override
        public Object deserialize(byte[] bytes) throws IOException {
            if(bytes == null || bytes.length == 0)
                return null;
            FSTObjectInput in = null;
            try {
                in = new FSTObjectInput(new ByteArrayInputStream(bytes));
                return in.readObject();
            } catch (ClassNotFoundException e) {
                throw new CacheException(e);
            } finally {
                if(in != null)
                try {
                    in.close();
                } catch (IOException e) {}
            }
        }
    
    }
    
    Reviewed by gumutianqi at 2015-11-19 12:37
  • 10. Javascript needs to be enabled for you to delete keys.

    when I delete keys ,it show me that ! How to fix it? thanks. error in chrome console: Uncaught SecurityError: Failed to execute 'replaceState' on 'History': A history state object with URL xxx error in firefox console: SecurityError: The operation is insecure.

    Reviewed by BigKuCha at 2015-10-10 03:57
  • 11. 1.14 version breaks under PHP<7

    Commit b9039ad introduces incompatibility with PHP<7 as it uses random_bytes function not available before PHP 7.0. Reading composer.lock file I see, that PHP 5.3.9 should be sufficient to run phpRedisAdmin so I consider this issue as a bug. If random_bytes is irreplaceable then maybe https://github.com/paragonie/random_compat should be used for PHP<7.

    Reviewed by krzyko at 2021-09-07 13:36
  • 12. use pagination to speed up

    if there is thousands of keys in redis, web frontend will load all data from backend, which is slow and stupid.

    1,use pagination on keys which have the same prefix 2,actually user do not need to load all keys on the left side, so only load keys that user choose.

    phpredisadmin is difficult to use in develop environment because it load all keys!

    Reviewed by gouchaoer at 2016-04-08 17:23
This web app aims to manage alumnus databases.

Aplikasi Database Alumni Aplikasi berbasis web ini bertujuan untuk melakukan pendataan alumni. Aplikasi ini dibuat menggunakan framework CodeIgniter d

Nov 24, 2021
Web interface to manage multiple instance of lxd
Web interface to manage multiple instance of lxd

LXDMosaic ?? Share your feedback ?? More input required ?? Roadmap ??️ Docs ?? Get Started Prepare LXD Setup LXD and ensure LXD is available over the

May 18, 2022
A simple wrapper for PHP Intervention Library to provide a more simple interface and convenient way to convert images to webp

This package is a simple wrapper for PHP Intervention Library to provide a more simple interface and convenient way to convert images to webp - next generation format - extension, and resize them to render only needed sizes.

Nov 16, 2021
Lookup IPs (IPv4 + IPv6), store them in MySQL and Redis + check if the IP is a VPN/Proxy

Lookup IPs (IPv4 + IPv6), store them in MySQL and Redis + check if the IP is a VPN/Proxy

Apr 9, 2022
A web interface for MySQL and MariaDB

phpMyAdmin A web interface for MySQL and MariaDB. https://www.phpmyadmin.net/ Code status Download You can get the newest release at https://www.phpmy

May 20, 2022
amadeus-ws-client: PHP client for the Amadeus GDS SOAP Web Service interface
 amadeus-ws-client: PHP client for the Amadeus GDS SOAP Web Service interface

amadeus-ws-client: PHP client for the Amadeus GDS SOAP Web Service interface This client library provides access to the Amadeus GDS SOAP Web Service i

May 17, 2022
MOFHY Lite is a free web hosting management system to manage MOFH hosting accounts and SSL certificates.

MOFHY Lite is a free of cost MOFH clientarea for account management and support services with free ssl service. It have easy to use feature

May 19, 2022
Open Source Voucher Management System is a web application for manage voucher. used PHP with Laravel Framework and use MySQL for Database.
Open Source Voucher Management System is a web application for manage voucher. used PHP with Laravel Framework and use MySQL for Database.

Voucher Management System is a web application for manage voucher. You can create and manage your voucher. Voucher Management System is used PHP with Laravel Framework and use MySQL for Database.

May 22, 2022
MOFHY Lite is a free web hosting management system to manage MOFH hosting accounts and SSL certificates.

MOFHY Lite MOFHY LITE is a priceless MyOwnFreeHost Client Area for account management, ticket support system and a free ssl service. It has easy to us

Dec 28, 2021
A PHP based web application to help manage your postmortems
A PHP based web application to help manage your postmortems

morgue a safe place for all your postmortem data Overview This is a PHP based web application to help manage your postmortems. It has a pluggable feat

May 24, 2022
ViMbAdmin project provides a web based virtual mailbox administration system to allow mail administrators to easily manage domains, mailboxes and aliases.

ViMbAdmin project (vim-be-admin) provides a web based virtual mailbox administration system to allow mail administrators to easily manage domains, mailboxes and aliases.

May 2, 2022
TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application
TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application

TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application for storing, uploading, editing and managing files and folders online via web browser. The Application runs on PHP 5.5+, It allows the creation of multiple users and each user can have its own directory and a build-in support for managing text files with cloud9 IDE and it supports syntax highlighting for over 150+ languages and over 35+ themes.

May 22, 2022
A unified front-end for different queuing backends. Includes a REST server, CLI interface and daemon runners.

PHP-Queue A unified front-end for different queuing backends. Includes a REST server, CLI interface and daemon runners. Why PHP-Queue? Implementing a

May 16, 2022
Switch the DokuWiki interface language according to the accept-language request header

Switch the DokuWiki interface language according to the accept-language request header

Jan 4, 2022
Interface Network is an application about social media

Interface Network is an application about social media

Apr 20, 2022
Roundcube Webmail is a browser-based multilingual IMAP client with an application-like user interface.

Roundcube Webmail roundcube.net ATTENTION This is just a snapshot from the GIT repository and is NOT A STABLE version of Roundcube. It's not recommend

May 27, 2022
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.

Lychee A great looking and easy-to-use photo-management-system. Since the 1st of April 2018 this project has moved to it's own Organisation (https://g

May 26, 2022
PHP backend Scripts to add and Manage Live tv Streaming android app
PHP backend Scripts to add and Manage Live tv Streaming android app

PHP Backend to Manage Live TV Streaming Android app Follow Given Steps to Setup Local Environment to run this php Script Setting Up Local Environment

May 10, 2022
Dolibarr ERP & CRM is a modern software package that helps manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…).
Dolibarr ERP & CRM is a modern software package that helps manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…).

Dolibarr ERP CRM is a modern software package to manage your company or foundation activity (contacts, suppliers, invoices, orders, stocks, agenda, accounting, ...). It is open source software written in PHP and designed for small and medium businesses, foundations and freelancers. You can freely install, use and distribute it as a standalone application or as a web application to use it from every internet access and media.

May 20, 2022