PHPackages                             robinn/phpcacheadmin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Caching](/categories/caching)
4. /
5. robinn/phpcacheadmin

ActiveProject[Caching](/categories/caching)

robinn/phpcacheadmin
====================

A web dashboard for your favorite caching system.

2.5.1(2w ago)4483.8k181MITPHPPHP &gt;=8.2CI passing

Since Jul 19Pushed 2w ago6 watchersCompare

[ Source](https://github.com/RobiNN1/phpCacheAdmin)[ Packagist](https://packagist.org/packages/robinn/phpcacheadmin)[ RSS](/packages/robinn-phpcacheadmin/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (12)Versions (38)Used By (1)

[![Logo](.github/img/logo.svg)](.github/img/logo.svg)

Web GUI for managing Redis, Memcached, APCu, OPCache, and Realpath with data management.

**[phpcacheadmin.com](https://phpcacheadmin.com/)**

   ![Preview](.github/img/preview.png)

[![Visitor Badge](https://camo.githubusercontent.com/2ab5a17d869981798fbd8458417195d4bd49775c801a8d2d69f120132e4ba3a5/68747470733a2f2f76697369746f722d62616467652e6c616f62692e6963752f62616467653f706167655f69643d526f62694e4e312e706870436163686541646d696e)](https://camo.githubusercontent.com/2ab5a17d869981798fbd8458417195d4bd49775c801a8d2d69f120132e4ba3a5/68747470733a2f2f76697369746f722d62616467652e6c616f62692e6963752f62616467653f706167655f69643d526f62694e4e312e706870436163686541646d696e)[![Docker Pulls](https://camo.githubusercontent.com/6aa967d96f11e67498e353e727181f7b6953e7cf89e3f4dc8fa2526f6ae3c1fd/68747470733a2f2f696d672e736869656c64732e696f2f646f636b65722f70756c6c732f726f62696e6e2f706870636163686561646d696e)](https://camo.githubusercontent.com/6aa967d96f11e67498e353e727181f7b6953e7cf89e3f4dc8fa2526f6ae3c1fd/68747470733a2f2f696d672e736869656c64732e696f2f646f636b65722f70756c6c732f726f62696e6e2f706870636163686561646d696e)

Features
--------

[](#features)

### General

[](#general)

- Clean, responsive interface with a **Dark Mode**.
- Switch between multiple configured servers for Redis, Memcached.
- Back up and restore your data.
- Quickly find keys across your cache.
- **No composer required to run**.
- **Docker ready**.

### Redis

[](#redis)

- Works with both **phpredis** and **Predis** clients.
- View, add, edit, and delete keys. Supports all Redis data types.
- **Cluster support**.
- Supports ACL.
- Detailed server statistics including command calls, memory usage, uptime, connected clients, and general info.
- View the Redis slowlog to debug performance issues.
- Supports both SCAN and KEYS commands for retrieving keys.

### Memcached

[](#memcached)

- Uses a custom client, so **no memcache(d) extension** is required.
- View, add, edit, and delete keys.
- Server Stats including uptime, memory usage, connections, and more.
- Slabs &amp; Items info.
- Commands Stats.

### PHP Caches

[](#php-caches)

- **APCu**:
    - View, edit, and delete user-cached entries.
    - View cache information and memory usage statistics.
- **OPcache**:
    - View and invalidate cached scripts.
    - Get statistics on memory usage, hit rates, and cached keys.
- **Realpath Cache**:
    - View and clear PHP's realpath cache entries.

Installation
------------

[](#installation)

Unzip the archive and launch index.php in a web browser. No installation is required.

If you use the defaults (e.g., Redis, Memcached servers), everything should work out of the box. To customize the configuration, do not edit `config.dist.php` directly, but copy it into `config.php`.

Updating
--------

[](#updating)

Replace all files and delete the `/tmp/twig` folder (it contains compiled Twig templates).

Common issues
-------------

[](#common-issues)

If you get the error "Fatal error: Allowed memory size of x bytes exhausted" or a blank page, increase the PHP memory limit or enable the SCAN command (set `PCA_REDIS_0_SCANSIZE` or uncomment `scansize` in `config.php`). For Redis databases with more than 100 000 keys, SCAN is used automatically (the limit is configurable with `scanthreshold`).

Cronjob
-------

[](#cronjob)

You can add these links to your cronjob to collect metrics when the dashboard is not open:

Redis `https://example.com/phpCacheAdmin/?dashboard=redis&server=0&ajax&metrics`

Memcached `https://example.com/phpCacheAdmin/?dashboard=memcached&server=0&ajax&metrics`

> `server=0` is the default server ID.

Metrics are collected whenever this link is refreshed, so you can set any time in the cronjob.

If you have authentication enabled, set `authtoken` in `config.php` and append `&token=your-secret-token`to the cronjob URL so it can collect metrics without a login session.

Environment variables
---------------------

[](#environment-variables)

All keys from the [config](https://github.com/RobiNN1/phpCacheAdmin/blob/master/config.dist.php) file are supported ENV variables, they just must start with `PCA_` prefix.

Options with an array can be set using "dot notation" but use `_` instead of a dot. Or you can even use JSON (e.g., Redis SSL option).

Redis:

- `PCA_REDIS_0_NAME` The server name (optional).
- `PCA_REDIS_0_HOST` Optional when a path or nodes is specified.
- `PCA_REDIS_0_NODES` List of cluster nodes. You can set value as JSON `["127.0.0.1:7000","127.0.0.1:7001","127.0.0.1:7002"]`.
- `PCA_REDIS_0_PORT` Optional when the default port is used.
- `PCA_REDIS_0_SCHEME` Connection scheme (optional). If you need a TLS connection, set it to `tls`.
- `PCA_REDIS_0_SSL` [SSL options](https://www.php.net/manual/en/context.ssl.php) for TLS. Requires Redis &gt;= 6.0 (optional). You can set value as JSON `{"cafile":"private.pem","verify_peer":true}`.
- `PCA_REDIS_0_DATABASE` Default database (optional).
- `PCA_REDIS_0_USERNAME` ACL - requires Redis &gt;= 6.0 (optional).
- `PCA_REDIS_0_PASSWORD` Optional.
- `PCA_REDIS_0_AUTHFILE` File with a password, e.g., Docker secrets (optional).
- `PCA_REDIS_0_PATH` Unix domain socket (optional).
- `PCA_REDIS_0_DATABASES` Number of databases, use this if the CONFIG command is disabled (optional).
- `PCA_REDIS_0_SCANTHRESHOLD` Use SCAN automatically instead of KEYS when the database has more keys than this, 1000 keys are retrieved (optional). Default 100\_000.
- `PCA_REDIS_0_SCANSIZE` Always use SCAN and retrieve at most this many keys, regardless of the threshold (optional).

Memcached:

- `PCA_MEMCACHED_0_NAME` The server name (optional).
- `PCA_MEMCACHED_0_HOST` Optional when a path is specified.
- `PCA_MEMCACHED_0_PORT` Optional when the default port is used.
- `PCA_MEMCACHED_0_PATH` Unix domain socket (optional).

Other:

- `PCA_PHP_MEMORY_LIMIT` In case you need to increase the PHP memory limit in Docker.
- `PCA_NGINX_PORT` In case you need to change NGINX port in Docker.

Open the [config](https://github.com/RobiNN1/phpCacheAdmin/blob/master/config.dist.php) file for more info.

> To add another server, add the same environment variables, but change `0` to `1` (`2` for third server and so on).

### .env files

[](#env-files)

You can keep these variables in a `.env` file instead of exporting them in the shell. This requires [vlucas/phpdotenv](https://github.com/vlucas/phpdotenv):

```
composer require vlucas/phpdotenv
```

Copy [.env.example](https://github.com/RobiNN1/phpCacheAdmin/blob/master/.env.example) to `.env` and adjust the values. The following files are loaded automatically (in order of precedence, the more specific file wins):

1. `.env.{environment}.local`
2. `.env.{environment}`
3. `.env.local`
4. `.env`

`{environment}` comes from the `PCA_ENV` (or `APP_ENV`) variable, e.g., `PCA_ENV=development` also loads `.env.development`. This lets you keep committed defaults in `.env` and override them locally in `.env.local`, which is git-ignored.

Real environment variables (e.g., set by Docker) always take precedence over the values in `.env` files, so you can still override anything at runtime.

Docker
------

[](#docker)

A Docker image is also available:

Run with a single command:

```
docker run -p 8080:80 -d --name phpcacheadmin -e "PCA_REDIS_0_HOST=redis_host" -e "PCA_REDIS_0_PORT=6379" -e "PCA_MEMCACHED_0_HOST=memcached_host" -e "PCA_MEMCACHED_0_PORT=11211" robinn/phpcacheadmin
```

Or use it in **docker-compose.yml**

```
services:
  phpcacheadmin:
    image: robinn/phpcacheadmin
    ports:
      - "8080:80"
    #volumes:
    # If you want to use config.php instead of ENV variables
    #  - "./config.php:/var/www/html/config.php"
    environment:
      - PCA_REDIS_0_HOST=redis
      - PCA_REDIS_0_PORT=6379
      - PCA_MEMCACHED_0_HOST=memcached
      - PCA_MEMCACHED_0_PORT=11211
    links:
      - redis
      - memcached
  redis:
    image: redis
  memcached:
    image: memcached
```

Requirements
------------

[](#requirements)

- PHP &gt;= 8.2 (Use [v1 branch](https://github.com/RobiNN1/phpCacheAdmin/tree/v1.x) if you need support for &gt;=7.4)
- Redis server &gt;= 4.0
- Memcached server &gt;= 1.4.31. SASL is not supported because there is no way to get the keys
- sqlite3 extension for metrics

> It is not necessary to have all dashboards enabled.

Custom Dashboards
-----------------

[](#custom-dashboards)

Here is an example of how to implement a custom dashboard

- [FileCache](https://github.com/RobiNN1/FileCache-Dashboard) ([`robinn/cache`](https://github.com/RobiNN1/Cache)) dashboard.

Contributing
------------

[](#contributing)

**Pull Requests are disabled to prevent AI-generated garbage.**

If you have a feature request, suggestion, or have found a bug, please **open an Issue** describing what you would like to see.

###  Health Score

61

—

FairBetter than 98% of packages

Maintenance96

Actively maintained with recent releases

Popularity42

Moderate usage in the ecosystem

Community16

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~39 days

Total

37

Last Release

20d ago

Major Versions

v1.x-dev → 2.0.02025-02-08

PHP version history (2 changes)1.0.0PHP &gt;=7.4

2.0.0PHP &gt;=8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/11664877?v=4)[Róbert Kelčák](/maintainers/RobiNN1)[@RobiNN1](https://github.com/RobiNN1)

---

Top Contributors

[![RobiNN1](https://avatars.githubusercontent.com/u/11664877?v=4)](https://github.com/RobiNN1 "RobiNN1 (869 commits)")

---

Tags

adminapcucacheclusterdark-modedashboardguimemcachememcachedopcacheopcache-guiphpphpcacheadminphpredisadminrealpathredistailwindcssuiwebguirediscachememcachedapcudashboardadminmemcacheOpcacherealpathphpcacheadmin

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/robinn-phpcacheadmin/health.svg)

```
[![Health](https://phpackages.com/badges/robinn-phpcacheadmin/health.svg)](https://phpackages.com/packages/robinn-phpcacheadmin)
```

###  Alternatives

[sabre/cache

Simple cache abstraction layer implementing PSR-16

551.3M5](/packages/sabre-cache)[apix/cache

A thin PSR-6 cache wrapper with a generic interface to various caching backends emphasising cache taggging and indexing to Redis, Memcached, PDO/SQL, APC and other adapters.

117548.2k6](/packages/apix-cache)[ihor/cachalot

Cache a lot in a proper way (APC, XCache, Memcached, Redis, Couchbase)

2528.4k](/packages/ihor-cachalot)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
