← All reportsPublic report

redis/redis

For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.

76k stars C View on GitHubprofiled 14d ago
Try GitZoid
70PRs this week
32Contributors
0Deps scanned
0Issues found
01 · Repo overview

How redis is put together

Redis Open Source is an in-memory, single-process, event-driven data structure server written primarily in C. The core (src/) implements a custom event loop (ae), RESP networking, command dispatch, and a rich set of in-memory data types (strings, lists, sets, hashes, sorted sets, streams, geo, HyperLogLog) with persistence via RDB snapshots and AOF logs, replication, Lua scripting/Functions, a C Modules API, cluster mode, Sentinel, ACLs, and TLS-secured connections. Auxiliary binaries built from the same tree include redis-cli, redis-benchmark, redis-check-aof/rdb, and sentinel; vendored third-party dependencies live under deps/. Tests are driven by Tcl-based runtest scripts, and utility tooling includes Ruby doc generation and Python-based request/response validation.

Languages

CTclRubyPythonShellLua

Frameworks

Custom ae event loop (epoll/kqueue/evport/select backends)Modules API (redismodule.h)RESP protocol implementation

Datastores

Redis itself (in-memory key-value data structure server with RDB/AOF persistence)

Infrastructure

Docker (docker/Dockerfile.noble)Codecov CI coverage reportingOfficial binary distributions via Snap/Homebrew/RPM/Debian packaging repos

Major components

Event loop & networking

src/ae.c plus backend files (ae_epoll.c, ae_kqueue.c, ae_select.c, ae_evport.c), src/networking.c, src/anet.c, src/connection.c implement non-blocking I/O, client handling, and pluggable connection types (TCP/TLS).

Data types & storage

Implementations of core structures: dict, sds, listpack, quicklist, rax, intset, ebuckets, kvstore, t_hash/t_set/t_zset family, geo/hyperloglog/bitops, plus eviction (evict.c) and expiry (expire.c).

Persistence (RDB/AOF)

src/rdb.c serializes datasets to snapshot files while src/aof.c appends write commands and rewrites logs for durability and recovery.

Replication & clustering

src/replication.c handles master-replica sync and propagation; src/cluster.c, src/cluster_legacy.c, and src/cluster_slot_stats.c implement cluster bus gossip, slot ownership/migration, and slot statistics.

Scripting (Lua & Functions)

src/eval.c, src/script_lua.c, src/function_lua.c, src/functions.c, and src/script.c execute embedded Lua scripts and persistent Functions with sandboxed execution.

Modules API

src/module.c and src/redismodule.h expose a large C API allowing external modules to register commands, data types, and hooks inside the server process.

Security & access control

src/acl.c implements users, password authentication, command/key pattern permissions, and TLS config; src/config.c parses redis.conf including TLS certificates/keys and ACL file directives.

CLI tools & Sentinel

redis-cli.c / cli_common.c provide the interactive client, redis-benchmark.c load generation, redis-check-aof/rdb integrity checkers, and sentinel.c runs the Sentinel high-availability monitor.

Over the past five weeks the Redis team focused heavily on reliability and correctness, fixing a steady stream of data-safety bugs around replication, cluster failover, and expiration. Alongside those fixes, they shipped user-facing improvements to TLS configuration, cluster node info, and performance of streams, hashes, and networking. The week of August 3 was the busiest with 21 commits, largely cleanup and edge-case fixes, while later weeks settled into smaller batches of targeted bug fixes.

Week by week

2026-08-24A short week centered on preventing data loss and tightening security checks during transactions and replica migration.latest4 changes

Fix

Prevent data loss after cross-shard replica migration

Fixed a scenario where moving a replica between shards in a cluster could result in lost data.

Fix

Recheck ACL key permissions at EXEC time

Access permissions for specific keys are now verified again when a queued transaction actually runs, closing a security gap.

Fix

Clean up code coverage CI warnings

Resolved warnings and failures that appeared when measuring test coverage across multiple threads.

Refactor

Enable x86 TSC monotonic clock by default

Redis now uses the processor's high-resolution clock by default on x86 machines, calibrating it at runtime for more accurate timing.

2026-08-17Eleven commits brought a new TLS named-groups setting plus fixes for replication failover, integer overflow, and hash performance.6 changes

Feature

Add tls-groups configuration option

Administrators can now control which TLS named groups (encryption key-exchange methods) Redis uses for secure connections.

Fix

Fix replica left as sub-replica after failover

After an automatic failover, replicas no longer remain incorrectly attached as second-level replicas.

Fix

Fix integer overflow on out-of-range numkeys

Extremely large numbers passed to commands accepting a key count no longer cause overflow errors.

Refactor

Improve batch mutation performance of hash template keys

Operations that update many template-based hash keys at once are now noticeably faster.

Chore

Add 8.8 and 8.10 to supported versions

The two latest release branches are now officially tracked as supported versions.

Chore

Fix flaky TLS handshake wording in tests

Updated a test so it matches error messages consistently across different OpenSSL platforms.

2026-08-10Six commits added stream visibility to key-size reporting and fixed several expiration and RDB-loading bugs.6 changes

Feature

Add stream support to INFO keysizes histograms

The server's key-size statistics report now includes streams, giving better visibility into memory usage by data type.

Feature

Expose TLS port flag in RM_GetClusterNodeInfo()

Modules can now tell whether a cluster node's port uses TLS when querying node information.

Fix

Fix overflowing relative expiration times in SET

Setting extremely large relative expiry times no longer overflows into incorrect values.

Fix

Fix unloadable RDB when XSETID lowers entries_added

Snapshots saved after certain XSETID operations can now be loaded again without errors.

Fix

Avoid resizing slot dict during atomic slot import

Prevented a resize operation mid-import that could destabilize cluster slot transfers.

Fix

Fix potential defrag issues in the hash template registry

Addressed memory-defragmentation edge cases involving the internal hash template registry.

2026-08-03The busiest week of the period with 21 commits, mostly small correctness fixes, memory-safety patches, and performance cleanups.6 changes

Fix

Fix use-after-free in handleClientsBlockedOnKey

Closed a memory-safety bug where blocked clients could reference freed data.

Fix

Track Pub/Sub subscription provenance across AUTH changes

Pub/Sub subscriptions are now correctly re-evaluated when a client authenticates under different credentials.

Fix

Fix XDELEX DELREF propagation for deleted entries

Reference-count updates for deleted stream entries now propagate correctly.

Refactor

Assemble bulk replies in one pass

Network reply construction for large values was streamlined into a single step for faster responses.

Refactor

Speed up child-edge lookup in radix tree nodes

The internal radix tree now uses optimized memory scanning to find child nodes more quickly.

Refactor

Move topology change handling into the cluster layer

Common logic for handling cluster membership changes was consolidated into one place for maintainability.

2026-07-27Fourteen commits bundled module version upgrades to 8.10.0, stronger TLS certificate verification, and a faster XAUTOCLAIM.6 changes

Chore

Upgrade bundled modules to 8.10.0

RedisBloom, RedisTimeSeries, RedisJSON, and RediSearch were all updated to their 8.10.0 releases.

Feature

Add TLS peer certificate name verification

Server-to-server connections can now verify the certificate's hostname identity, hardening encrypted cluster links.

Refactor

Speed up XAUTOCLAIM with a single forward scan

The XAUTOCLAIM command now scans forward once instead of doing per-entry lookups, making it much faster on large streams.

Docs

Update TLS.md documentation

The TLS guide was refreshed to accurately describe current supported TLS features.

Fix

Disable defrag during AOF preamble loading

Memory defragmentation is paused while loading AOF files to prevent conflicts with template-based hashes.

Fix

Notify modules when node IP or port changes

Modules are now informed when a cluster node's own address changes so they can react appropriately.

03 · Security check

Dependencies and code review

0 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 0 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required