hypervel / redis
The Hypervel Redis package.
v0.3.28
2026-07-21 09:46 UTC
Requires
- php: ^8.2
- hyperf/redis: ~3.1.0
- hypervel/support: ^0.3
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-11-02 17:09:56 UTC
README
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
persistentandpersistent_idoptions are omitted; the connection pool owns connection reuse. setEventDispatcher()andunsetEventDispatcher()are omitted. Pooled connections use the application's event dispatcher; control command events through the connection'seventssetting orRedis::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()andsetDriver()APIs are intentionally omitted. Use Redis macros for custom commands orwithConnection()for explicit access to a held connection. - Native
subscribe(),psubscribe(), andssubscribe()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. Usediscard(),unwatch(), orexec()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 publicacquire()returns that lease, so Laravel's protectedacquire($id),lockScript(),release($key, $id),releaseScript(), andgetPrefix()hooks are not provided. OverrideclaimSlot()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 usesIlluminate\Contracts\Redis\LimiterTimeoutExceptionfor Redis limiters.
Ported from: https://github.com/laravel/framework/tree/13.x/src/Illuminate/Redis