Search by

hypervel / redis

albertchtbinaryfire

The Hypervel Redis package.

Package info

github.com/hypervel/redis

Issues

pkg:composer/hypervel/redis

Statistics

Installs: 13 683

Dependents: 12

Suggesters: 1

Stars: 0

v0.3.28 2026-07-21 09:46 UTC

README

Ask DeepWiki

Documentation: https://hypervel.org/docs/redis

Differences From Laravel

  • Hypervel uses phpredis-only pooled connections. Cluster and Sentinel settings belong to each named connection instead of Laravel's top-level cluster configuration.
  • Native persistent and persistent_id options are omitted; the connection pool owns connection reuse.
  • setEventDispatcher() and unsetEventDispatcher() are omitted. Pooled connections use the application's event dispatcher; control command events through the connection's events setting or Redis::enableEvents() / disableEvents() during boot.
  • Hypervel never automatically replays a command after a Redis failure because the server may already have committed it. Native phpredis retry and backoff options remain supported.
  • Redis connection macros are observed as one proxy operation; native commands run inside a macro do not emit separate command events.
  • Laravel's connector-driver extend() and setDriver() APIs are intentionally omitted. Use Redis macros for custom commands or withConnection() for explicit access to a held connection.
  • Native subscribe(), psubscribe(), and ssubscribe() calls are unavailable on pooled connections. Use the dedicated subscriber for ordinary channel and pattern subscriptions; sharded Pub/Sub is not supported.
  • Native reset() is unavailable on pooled connections because it clears authentication and database state owned by the pool. Use discard(), unwatch(), or exec() to finish the corresponding stateful operation.
  • Redis::funnel()->acquire() returns a caller-held concurrency lease that can be refreshed and released explicitly after work spanning multiple operations. Laravel only exposes the callback-scoped funnel API. The Redis concurrency limiter's public acquire() returns that lease, so Laravel's protected acquire($id), lockScript(), release($key, $id), releaseScript(), and getPrefix() hooks are not provided. Override claimSlot() to customize slot acquisition; the returned lease releases the slot.
  • Redis funnel and throttle timeout failures throw Hypervel\Contracts\Limiters\LimiterTimeoutException, shared with cache funnels. Laravel uses Illuminate\Contracts\Redis\LimiterTimeoutException for Redis limiters.

Ported from: https://github.com/laravel/framework/tree/13.x/src/Illuminate/Redis