mrkeyoor.com_
Sat 31 Oct 09:53 UTC
Dataevaluationupdated 05 Oct 2026

redis review

Redis is an in-memory data server for caches, sessions, queues, streams, documents, search, and vector workloads. It gives applications shared state and atomic data-structure operations without forcing every job into plain key-value reads.

+0stars / 7d
Verdict

Our Redis run installed 40 Python packages and found 4 known vulnerabilities, but pytest collected 0 tests because the harness entered a nested validator rather than the Redis server. Redis 8.10 is a strong choice when one operated service can replace separate cache, queue, stream, search, and vector components. Pick an exact license, use a current release, and run the server's real test plan before treating the deployment as ready.

We ran it

Lab card: what happened when we ran redisScreenshot of redis (redis.io)
Install✓ · 14s40 packages · 40 MB
Build✓ · 7s
Tests✗ · 7s0 passed · 0 failed of 0 (pytest)
Known vulns4(pip-audit)
Repo1864 files~388,648 lines of source · 21.9 MB · 10 CI workflows · tests dir

Answers from our run

Does redis build from source?

Dependencies installed in 14 seconds (40 packages), and the build succeeded in 7 seconds. We cloned commit b540ca4 into a clean Debian container with 3 CPUs and no project-specific setup.

Do redis's tests pass?

No. The project's own test command finished in 7 seconds and reported 0 passed, 0 failed (pytest).

Does redis have known vulnerabilities in its dependencies?

pip-audit flagged 4 known advisories in the dependency tree at the time of our run.

Who should not use redis?

Teams that need this lab run to prove the Redis server builds and passes its suite: our harness exercised utils/req-res-validator, and pytest collected 0 tests.

What are the alternatives to redis?

Valkey, Memcached, Dragonfly. Our Redis run installed 40 Python packages and found 4 known vulnerabilities, but pytest collected 0 tests because the harness entered a nested validator rather than the Redis server.

Setup3/5Containers are easy. Full 8.10 builds need pinned tool versions
Docs5/5Build paths, clients, persistence, and cluster limits are explicit
Community5/576,589 stars and issue work updated on October 4, 2026
Maturity5/5v8.10.2 shipped security fixes and the project remains active

Discussed on

  1. hnRedis License Changed289 points
  2. hnRCP 11 – Stream data type proposal for Redis125 points
  3. hnRedis changes license from BSD-3 to dual RSALv2+SSPLv141 points
  4. hnRedis 7 brings new features and breaking changes17 points
  5. hnRedis 7 benchmarks 3-26% slower than 616 points

Who it’s for

Application teams that need shared caching, sessions, counters, rate limits, queues, streams, or leaderboards.
Developers who want atomic server-side operations and client libraries for common programming languages.
Search and AI teams using JSON documents, full-text queries, time series, or vectors.
Operators prepared to choose persistence, replication, memory limits, network controls, and failover behavior.

Who it’s NOT for

Teams that need this lab run to prove the Redis server builds and passes its suite: our harness exercised utils/req-res-validator, and pytest collected 0 tests.
Organizations that cannot accept the Redis 8 choice of RSALv2, SSPLv1, or AGPLv3: the README applies that tri-license to version 8.0 and later.
Systems that require acknowledged writes to survive every failover: Redis replication is asynchronous, and the official docs say WAIT does not make it strongly consistent.
Developers wanting an unpinned full source build: Redis 8.10 requires LLVM 21, Rust 1.94, and CMake from 3.25 through 3.31.6.
Security gates that require a clean dependency audit: pip-audit found 4 known vulnerabilities in the Python utility environment we installed.

Setup reality

Our sandbox entered utils/req-res-validator at commit b540ca4. It installed 40 Python packages in 14 seconds and used 40 MB. Its build passed in 7 seconds. Pytest then failed with exit 5 after 7 seconds, reporting 0 passed and 0 failed out of 0. Pip-audit found 4 known vulnerabilities.

Self-hosted Redis needs no hosted account or API key. Your application needs a client, while production needs deliberate choices for authentication, TLS, persistence, memory limits, replication, backups, and clustering. Redis Cloud is optional rather than a requirement.

The official container or binary packages are the shorter route. A full 8.10 source build needs LLVM 21, Rust 1.94, supported CMake, Python 3, and module prerequisites. CMake 4.x is unsupported, make bootstrap may replace shared tool versions, and a Git checkout uses generated redis-full.conf when bundled modules are built.

Redis 8.10 puts several data jobs behind one server

Redis 8.10 exposes strings, hashes, lists, sets, sorted sets, streams, JSON documents, time series, full-text search, and vector search through one server. That range is the practical reason to choose it. A session store can share the same operating model as a rate limiter or queue, while each use still gets commands designed for its data type. Redis handles much more than serialized cache entries.

A single service on port 6379 can simplify an application stack, yet the shared failure domain deserves respect. Cache eviction may be harmless. Losing a queue entry, session, or search document may not be. Before adopting Redis for several jobs, write down which keys may disappear, which must survive a restart, and which need their own capacity or isolation. The command set does not make those policies for you.

The official image avoids an exacting 8.10 build toolchain

The shortest trial is the official container command in the README, followed by redis-cli or a client library. No hosted credential is required for that self-hosted path. The project links clients for Python, JavaScript, Go, Java, .NET, PHP, and C, so most teams can test their own access pattern without writing protocol code or compiling the server.

A full Redis 8.10 build asks for LLVM 21, Rust 1.94, Python 3, and CMake between 3.25 and 3.31.6. CMake 4.x is explicitly unsupported for the bundled modules. The README recommends its Ubuntu 24.04 build environment or make bootstrap, but warns that bootstrap may replace shared tool versions. A git checkout also needs make modules-update and uses generated redis-full.conf when those modules are loaded.

What happened when we ran it

Our sandbox cloned commit b540ca4, a 21.9 MB checkout containing 1,864 files and about 388,648 lines of source. The automated ecosystem detector selected the Python project in utils/req-res-validator. It did not select the C server at the repository root. The container had 3 CPUs, 8 GB of RAM, Debian with Python 3.12, no secrets, and no elevated privileges.

That utility installed successfully in 14 seconds, pulling 40 packages and occupying 40 MB. Its build succeeded in another 7 seconds. Those numbers describe the request-response validator environment only. They do not measure compiling redis-server, starting a node, request latency, failover, persistence recovery, or the performance of any Redis data type.

The test step failed with exit code 5 after 7 seconds. Pytest reported 0 passed and 0 failed out of 0, and the log tail said no tests ran in 0.00s. The repository does contain a tests directory and 10 CI workflow files, but this command did not run them. Pip-audit also found 4 known vulnerabilities in the installed Python environment. The supplied result does not name their packages or severity.

Our scanner reported no Dockerfile, while the current README points source builders to docker/Dockerfile.noble. That is a nested build file rather than a root Dockerfile, and it is the documented route for a contained full build. The mismatch is another reason to read the selected project path before interpreting an automated green build. Here, the 7-second build was real and narrow.

Asynchronous replication leaves durability choices with the operator

Redis offers point-in-time RDB snapshots, an append-only file, or both. The persistence guide says RDB alone can lose the latest minutes after an abrupt stop. AOF can fsync every write, every second, or leave flushing to the operating system, with different costs and recovery windows. Backups and restore drills still sit outside the server command that enabled persistence.

Replication is asynchronous by default. The official guide says WAIT can reduce the window for lost writes, but it does not turn Redis into a strongly consistent system. Redis Cluster uses the same asynchronous model during failover. That may be acceptable for caches, rate limits, and rebuildable indexes. A workload that cannot lose an acknowledged write needs a design review before Redis becomes its system of record.

Redis 8 licensing and security releases need explicit ownership

The licensing line changes by version. Releases through 7.2 use BSDv3, versions 7.4 through 7.8 offer RSALv2 or SSPLv1, and version 8.0 onward offers RSALv2, SSPLv1, or AGPLv3. The README also says Intel Leanvec and LVQ optimizations cannot be combined with the AGPLv3 or SSPLv1 choices. Legal review belongs near the start of a Redis 8 evaluation.

Release 8.10.2 arrived on September 17, 2026 and is marked SECURITY. Its notes cover transaction ACL behavior, unauthenticated cluster-bus exposure without cluster TLS, and crash fixes in TimeSeries, Search, and Vector Sets. The release added a protected-mode option for the cluster bus, but its default is no. Network boundaries, TLS, exact version pinning, and prompt patching are operator work.

October activity shows maintenance and a very large queue

GitHub showed 76,589 stars, a September 30, 2026 last push, and issue or pull-request activity on October 4. The open total split into 2,276 issues and 724 pull requests. That is evidence of current work and a substantial review burden. The September 17 security release matters more to an operator than the star count: it supplies fixes that should be in the deployed version.

Choose Redis when its data structures remove application code and your team can own a stateful service. Use Valkey when BSD licensing drives the decision, or Memcached when the job is only disposable caching. For Redis itself, test the exact server artifact and recovery settings you will ship. Our lab's final line was no tests ran in 0.00s, which is a finding to correct, not a release gate to accept.

Alternatives

ProjectWhat it isPick it when
Valkey gh↗A BSD-licensed distributed key-value database optimized for caching and real-time workloads.pick this instead when permissive BSD terms matter more than Redis 8's integrated module direction.
MemcachedA focused distributed memory cache with a much smaller data model.pick this instead when disposable caching is enough and you do not need persistence, streams, or Redis data structures.
Dragonfly gh↗An in-memory data store designed as an alternative to Redis and Memcached.pick this instead when you want to test a different server design behind familiar client protocols.

What people are saying

  1. [hackernews] From the creator of Redis; run LLM locally with ds4
  2. [velocity-scout] redis/go-redis
  3. [hackernews] Show HN: Redis City – Explore how Redis works in an interactive 3D model

Sources

  1. Redis README
  2. Redis repository
  3. Redis 8.10.2 security release
  4. Redis persistence documentation
  5. Redis replication documentation
  6. Redis Cluster specification

More data reviews

jq · pgx · HowToLiveLonger · ip2region · dbdelve · litestream · the whole board →