Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Redis Laravel Package

webman/redis

Redis client for the webman framework, providing connection pooling and coroutine-safe access through ext-redis or Predis. Supports multiple connections, cluster and sentinel setups, lazy connections, and an expressive API for caching, queues, pub/sub and other common Redis workloads.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — low for a Laravel stack, high only inside webman. webman/redis is the Redis component for webman, the Workerman-based resident-memory PHP framework — not a Laravel package. It has no ServiceProvider, no facade, no config/redis.php contract, and no integration with Laravel's RedisManager, Horizon, or queue/broadcast/Session drivers. It appears to sit on top of illuminate/redis (the same reuse pattern webman uses for illuminate/database), adapted to webman's process model and lifecycle. That means the underlying client is familiar, but the wiring, config surface, and connection lifecycle are webman-specific.

Integration feasibility. In a Laravel service: not feasible without writing an adapter, and there is no reason to — Laravel's native predis/phpredis path is first-party, documented, and battle-tested. In a webman service: high feasibility; this is the canonical component and adoption is a config change plus a Composer require. The realistic decision is therefore "adopt if and only if the target runtime is webman," not "evaluate as a Laravel dependency."

Technical risk — concentrated in provenance and validation, not code.

  • Provenance/typosquat check. The canonical project is published from the webman-php GitHub org under the webman/redis Packagist name; this repository shows 1 star and 0 dependents, which is inconsistent with the official component's visibility. Confirm the Packagist vendor entry, the composer.json name/homepage, and commit history before adding it to any lockfile.
  • Effectively zero community validation. 0 dependents means pub/sub, pipelines, CLUSTER/MOVED redirects, Sentinel failover, TLS, and reconnect-after-idle have not been exercised across many environments. In a resident-memory runtime, those are exactly the paths that break silently.
  • Release date anomaly. The latest release is stamped 2026-03-25. Verify the tag, changelog, and diff versus the prior version rather than trusting the metadata; supply-chain hygiene matters at this adoption level.
  • Single-maintainer bus factor. MIT licensing is fine, but continuity is a real risk.

Key questions for the maintainer/team:

  1. Does the target service actually run webman/Workerman, or is this being evaluated for a Laravel service? (If Laravel → stop here.)
  2. Is this repository the authoritative source, or a mirror/fork? What is the exact Packagist vendor and download path?
  3. Which client does it wrap — ext-redis (phpredis), predis, or both — and does it support connection pooling under webman/connection-pool?
  4. What is the tested matrix: PHP version, Workerman 4 vs 5, Swoole/Swow coroutines vs vanilla Workerman?
  5. Cluster/Sentinel/failover support — native, or delegated to the underlying client with no reconnect guarantees?

Integration Approach

Stack fit. Gate on runtime first: webman services → in-scope; Laravel/Symfony services → out of scope, use the framework's native Redis layer. Do not introduce a second Redis client into a Laravel service to "standardize" — the operational cost of dual clients (two config surfaces, two failure modes, two upgrade paths) exceeds any consistency gain.

Migration path (webman target only).

  1. Spike branch, not main: install, point at a staging Redis, exercise read/write, pipeline, pub/sub subscribe loop, and a forced redis-cli CLIENT KILL to observe reconnect behavior.
  2. Confirm the wrapped client and align it with other services in the estate — mixing phpredis and predis across services creates TLS and cluster-behavior drift that surfaces during incidents.
  3. Wrap it. Put an internal CacheClient/QueueClient interface in front of the package so a swap back to raw illuminate/redis or a fork is a one-file change.
  4. Pin exactly in composer.lock with a documented upgrade ritual; do not float ^.

Compatibility checks before commit.

  • illuminate/redis version constraint — if it collides with a Laravel package elsewhere in a monorepo, resolve at the workspace level.
  • ext-redis vs predis parity for the commands you actually use.
  • Connection pool sizing versus maxclients on the Redis side.
  • Behavior under coroutine drivers if Swow/Swoole is in play.

Sequencing. Non-production spike → one low-traffic internal service → one production-facing service with a Redis failover drill → wider rollout. Do not make this the first Redis component in a greenfield service without a rollback path to raw illuminate/redis.

Operational Impact

Maintenance. Low ongoing effort if pinned and wrapped; the risk is a silent gap in releases rather than churn. Budget a standing ~quarterly review: upstream diff, compatibility with the current Workerman/PHP version, and a decision to stay, fork, or migrate. Maintain an internal fork under webman-php/redis upstream so continuity is not contingent on one individual.

Support. No commercial backing; MIT with community-only channels. Escalation path is "read the wrapper source," which — for a package this thin — is viable, but it means your team owns the debugging, not the vendor. Ensure at least one engineer can read the underlying illuminate/redis connector.

Scaling. The scaling model is process-local: each Workerman worker holds its own connections, so total Redis connections ≈ worker_count × pool_size per node, multiplied across the fleet. Size the pool deliberately and watch maxclients during horizontal scaling — this is the most common self-inflicted outage with resident-memory Redis clients. Because workers are long-lived, connection leaks and memory growth accumulate rather than reset per request; instrument per-worker connection counts.

Failure modes to design for.

  • Stale connections after failover/idle timeout — resident workers keep dead sockets; verify reconnect and a PING-based health check.
  • Blocking commands on the event loop — BLPOP/BRPOP or a synchronous large KEYS/SMEMBERS stalls every request in that worker. Enforce timeouts and forbid blocking commands outside dedicated consumer processes.
  • Pub/sub subscriber loops dying silently and leaving a worker subscribed to nothing.
  • Cluster redirections (MOVED/ASK) unhandled in the wrapped client path.
  • Memory creep from accumulating pool objects across a long-lived worker.

Ramp-up. Near-zero for engineers already on webman. For a Laravel-centric team it is a genuine context switch: no facades, no Redis::connection() shorthand in the familiar form, resident-memory lifecycle, and explicit pool semantics. Budget a day of pairing plus the spike above.

Recommendation. Treat this as a framework-component adoption decision, not a library evaluation. Proceed only if the service runs webman, and only after provenance verification and a failover spike; otherwise close it out and use the framework-native Redis path. The 8.6 technical score and 52.95 opportunity score should be read as "reasonable code, unproven artifact" — the gap between those numbers and 1 star / 0 dependents is the entire risk.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle