{"id":42307798,"url":"https://github.com/XD-DENG/rediseen","last_synced_at":"2026-02-06T16:01:44.536Z","repository":{"id":35176990,"uuid":"215320895","full_name":"XD-DENG/rediseen","owner":"XD-DENG","description":"Create REST-like API service for Redis DB or expose Redis metrics in Prometheus-compatible format, easily.","archived":false,"fork":false,"pushed_at":"2023-02-25T04:28:33.000Z","size":2854,"stargazers_count":39,"open_issues_count":3,"forks_count":6,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-14T23:41:26.914Z","etag":null,"topics":["api","golang","redis","redis-database"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/XD-DENG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-15T14:33:45.000Z","updated_at":"2025-01-12T20:10:58.000Z","dependencies_parsed_at":"2024-06-20T12:09:24.605Z","dependency_job_id":null,"html_url":"https://github.com/XD-DENG/rediseen","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/XD-DENG/rediseen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XD-DENG%2Frediseen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XD-DENG%2Frediseen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XD-DENG%2Frediseen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XD-DENG%2Frediseen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/XD-DENG","download_url":"https://codeload.github.com/XD-DENG/rediseen/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XD-DENG%2Frediseen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29167870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T15:38:29.831Z","status":"ssl_error","status_checked_at":"2026-02-06T15:37:48.592Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","golang","redis","redis-database"],"created_at":"2026-01-27T11:12:46.285Z","updated_at":"2026-02-06T16:01:44.531Z","avatar_url":"https://github.com/XD-DENG.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Rediseen\n\n[![\"Latest Release\"](https://img.shields.io/github/release/xd-deng/rediseen.svg)](https://github.com/xd-deng/rediseen/releases/latest)\n[![action](https://github.com/xd-deng/rediseen/workflows/Rediseen/badge.svg)](https://github.com/XD-DENG/rediseen/actions)\n[![travis](https://api.travis-ci.org/XD-DENG/rediseen.svg?branch=master)](https://travis-ci.org/XD-DENG/rediseen/branches)\n[![codecov](https://codecov.io/gh/XD-DENG/rediseen/branch/master/graph/badge.svg)](https://codecov.io/gh/XD-DENG/rediseen)\n[![License](https://img.shields.io/:license-apache2-green.svg)](http://www.apache.org/licenses/LICENSE-2.0.html)\n[![Go Report Card](https://goreportcard.com/badge/github.com/xd-deng/rediseen)](https://goreportcard.com/report/github.com/xd-deng/rediseen)\n[![Docker Pull](http://img.shields.io/docker/pulls/xddeng/rediseen.svg)](https://hub.docker.com/r/xddeng/rediseen)\n\n\nStart a REST-like API service for your Redis database, without writing a single line of code.\n\n- Allows clients to query records in Redis database via HTTP conveniently\n- Allows you to specify which logical DB(s) to expose, and what key patterns to expose\n- Expose results of [Redis `INFO` command](https://redis.io/commands/info) in a nice format, so **you can use `Rediseen` as a connector between your Redis DB and monitoring dashboard** as well.\n    - Endpoint `/info` provides JSON format.\n    - Endpoint `/metrics` provides [Prometheus-compatible format](docs/documentation.md#use-rediseen-as-redis-info-exporter-for-prometheus).\n- Supports API Key authentication\n\n(Inspired by [sandman2](https://github.com/jeffknupp/sandman2); Built on shoulder of [go-redis/redis\n](https://github.com/go-redis/redis); CLI implemented with [Cobra](https://github.com/spf13/cobra))\n\n\u003cp align=\"center\"\u003e \n    \u003ca href=\"https://youtu.be/SpHNnPIT0HM\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/XD-DENG/rediseen/misc/images/rediseen_video_demo.png\" alt=\"drawing\" width=\"450\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n- [Quick Start](#quick-start)\n  - [Quick Start with `go get`](#quick-start-with-go-get)\n  - [Quick Start with Homebrew](#quick-start-with-homebrew)\n  - [Quick Start with Docker](#quick-start-with-docker)\n- [Documentation](docs/documentation.md)\n  - [Installation](docs/documentation.md#installation)\n  - [Configuration](docs/documentation.md#configuration)\n  - [How to Start the Service](docs/documentation.md#how-to-start-the-service)\n  - [How to Consume the Service](docs/documentation.md#how-to-consume-the-service)\n  - [API Authentication](docs/documentation.md#api-authentication)\n  - [Run Rediseen on Kubernetes](docs/documentation.md#run-rediseen-on-kubernetes)\n  - [Handle Special Character in Keys](docs/documentation.md#handle-special-character-in-keys)\n  - [Use Rediseen as Redis INFO Exporter for Prometheus](docs/documentation.md#use-rediseen-as-redis-info-exporter-for-prometheus)\n- [License](#license)\n- [Reference](#reference)\n\n\n## Quick Start\n\nLet's assume that your Redis database URI is `redis://:@localhost:6379`, and you want to expose keys with prefix `key:` in logical database `0`.\n\n### Quick Start with `go get`\n\nIf you have Go (1.11+) installed, you can install `Rediseen` easily by running\n\n```bash\ngo get github.com/xd-deng/rediseen\n``` \n\nIf your `GOPATH` is added to `PATH`, you should be able to run command `rediseen` now.\n\n```bash\n# Configuration\nexport REDISEEN_REDIS_URI=\"redis://:@localhost:6379\"\nexport REDISEEN_DB_EXPOSED=0\nexport REDISEEN_KEY_PATTERN_EXPOSED=\"^key:([0-9a-z]+)\"\n\n# Start the service\nrediseen start\n```\n\nNow you should be able to query against your Redis database, like `http://localhost:8000/0`, `http://localhost:8000/0/key:1`,\n`http://localhost:8000/info` or `http://localhost:8000/info/server`\n(say you have keys `key:1` (string) and `key:2` (hash) set in your logical DB `0`). Sample responses follow below.\n\n```bash\nGET /0\n\n{\n    \"count\": 2,\n    \"total\": 2,\n    \"keys\": [\n        {\n            \"key\": \"key:1\",\n            \"type\": \"string\"\n        },\n        {\n            \"key\": \"key:2\",\n            \"type\": \"hash\"\n        }\n    ]\n}\n```\n\n```bash\nGET /0/key:1\n\n{\n    \"type\": \"string\",\n    \"value\": \"rediseen\"\n}\n```\n\n```bash\nGET /info\n\n{\n    Server: {\n        redis_version: \"5.0.6\",\n        ...\n    },\n    Clients: {\n        ...\n    },\n    ...\n}\n```\n\n```bash\nGET /info/server\n\n{\n    Server: {\n        redis_version: \"5.0.6\",\n        ...\n    }\n}\n```\n\nFor more details, please refer to the rest of the [documentation](docs/documentation.md).\n\n\n### Quick Start with Homebrew\n\n```bash\n# Install using Homebrew\nbrew install XD-DENG/rediseen/rediseen\n```\n\nThen you can configure and start the service as described above.\n\n\n### Quick Start with Docker\n\n```bash\ndocker run \\\n    -e REDISEEN_REDIS_URI=\"redis://:@[YOUR REDIS HOST]:6379\" \\\n    -e REDISEEN_DB_EXPOSED=0 \\\n    -e REDISEEN_KEY_PATTERN_EXPOSED=\"^key:([0-9a-z]+)\" \\\n    -p 8000:8000 \\\n    xddeng/rediseen:latest\n```\n\nPlease note:\n- `REDISEEN_REDIS_URI` above should be a specific host address. If you are running Redis database using Docker\n    too, you can consider using Docker's `link` or `network` feature to ensure connectivity between Rediseen and your Redis database\n    (refer to the complete example below).\n- You can choose the image tag among:\n  - `latest` (the latest release version)\n  - `nightly` (the latest code in master branch)\n  - `unstable` (latest dev branch)\n  - release tags (like `2.2.0`. Check [Docker Hub/xddeng/rediseen](https://hub.docker.com/r/xddeng/rediseen/tags)\n    for full list)\n    \nA **complete example** using Docker follows below\n\n```bash\ndocker network create test-net\n\ndocker run -d --network=test-net --name=redis-server redis\n\ndocker run \\\n    -d --network=test-net \\\n    -e REDISEEN_REDIS_URI=\"redis://:@redis-server:6379\" \\\n    -e REDISEEN_DB_EXPOSED=0 \\\n    -e REDISEEN_KEY_PATTERN_EXPOSED=\"^key:([0-9a-z]+)\" \\\n    -p 8000:8000 \\\n    xddeng/rediseen:latest\n\ncurl -s http://localhost:8000/0\n```\n\nResult is like \n\n```\n{\n  \"count\": 0,\n  \"total\": 0,\n  \"keys\": null\n}\n```\n\nThen you can execute\n\n```bash\ndocker exec -i redis-server redis-cli set key:0 100\n\ncurl -s http://localhost:8000/0\n```\n\nand you can expect output below\n\n```\n{\n  \"count\": 1,\n  \"total\": 1,\n  \"keys\": [\n    {\n      \"key\": \"key:0\",\n      \"type\": \"string\"\n    }\n  ]\n}\n```\n\n## Documentation\n\n- [Documentation](docs/documentation.md)\n  - [Installation](docs/documentation.md#installation)\n  - [Configuration](docs/documentation.md#configuration)\n  - [How to Start the Service](docs/documentation.md#how-to-start-the-service)\n  - [How to Consume the Service](docs/documentation.md#how-to-consume-the-service)\n  - [API Authentication](docs/documentation.md#api-authentication)\n  - [Run Rediseen on Kubernetes](docs/documentation.md#run-rediseen-on-kubernetes)\n  - [Handle Special Character in Keys](docs/documentation.md#handle-special-character-in-keys)\n  - [Use Rediseen as Redis INFO Exporter for Prometheus](docs/documentation.md#use-rediseen-as-redis-info-exporter-for-prometheus)\n\n## License\n\n[Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n\n\n## Reference\n\n[1] https://swagger.io/docs/specification/authentication/api-keys/\n\n[2] Prometheus Exposition Formats, https://prometheus.io/docs/instrumenting/exposition_formats/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FXD-DENG%2Frediseen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FXD-DENG%2Frediseen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FXD-DENG%2Frediseen/lists"}