directorytree/activeredis
Active Record-style Redis hash models for Laravel. Create, update, delete, expire, and query Redis-backed records with an Eloquent-like API, including model identifiers, timestamps, casts, events, connections, chunking, searching, and testing support.
creating, updating, etc.), enabling hooks for validation, logging, or side effects without modifying core logic.:, *) require careful schema design to avoid collisions or query failures.integer, json) is mandatory for non-string fields.SCAN for iteration, which is non-deterministic and lacks indexing. Search functionality is limited to predefined searchable attributes.RDB/AOF) must be configured separately.setExpiry) is manual; no built-in TTL-based cleanup (e.g., for stale sessions).create()/save() operations with duplicate keys risk data loss unless force: true is used (which deletes existing records).SCAN results may require custom assertions for chunking logic.SCAN performance degrade under load?SCAN, hashes, and basic data types).Mockery for Redis mocks).activeredis) to isolate traffic.shouldBeRemoved() in migrations.Artisan commands).// Export SQL data to Redis
DB::table('visits')->chunk(1000, function ($visits) {
foreach ($visits as $visit) {
Visit::create($visit->toArray());
}
});
Visit::where('ip', $ip) → Visit::query()->where('ip', $ip)->get()).where, orderBy) where supported.SCAN and hashes.spatie/laravel-redis-events for pub/sub or laravel-ide-helper for autocompletion.Model class for consistency (e.g., shared casts, events).Mockery or Predis\Connection\MockConnection.searchable or casts).created, deleted) for audit trails.DuplicateKeyException: Check for race conditions or duplicate id generation.ModelNotFoundException: Verify key casing and searchable attributes.SCAN batch sizes or add Redis indexes (e.g., via RediSearch).redis-cli to inspect keys (e.g., KEYS visits:id:*).FLUSHDB for development).casts, searchable) for onboarding.SCAN-based queries may need optimization (e.g., smaller batches, parallel scans).How can I help you explore Laravel packages today?