redis

Background jobs with Sidekiq and ActiveJob

Sidekiq processes background jobs asynchronously using Redis and multi-threading. ActiveJob provides framework-agnostic interface—I use it for portability between job processors. Jobs handle emails, data processing, API calls, report generation. perfo

Django redis caching strategies

Redis provides fast in-memory caching for Django. I configure it as cache backend and use for session storage. I cache expensive querysets, computed values, and API responses. The cache.get_or_set() method simplifies cache-aside pattern. For cache inv

Rails caching strategies for performance

Rails caching dramatically improves performance by avoiding expensive computations and queries. Fragment caching caches view partials. Russian doll caching nests cache fragments for efficient invalidation. Low-level caching stores arbitrary data. Rail

Redis caching for expensive computations

Redis provides a fast, in-memory cache for expensive computations that don't change frequently. I use Rails.cache with the Redis store to cache things like trending posts calculations, aggregated statistics, or external API responses. The fetch method

Caching strategies with Spring Cache

Spring Cache abstraction simplifies caching with annotations. @Cacheable caches method results—subsequent calls with same arguments return cached values. @CachePut always executes methods and updates cache. @CacheEvict removes entries or clears entire

Database “Last Seen” without Hot Row Updates

Updating last_seen_at on every request creates hot rows and write amplification. Instead, track last seen in Redis and periodically flush to DB, or only write when the value meaningfully changes.

Laravel cache strategies for performance

Caching dramatically improves performance by storing expensive computations or database queries. Laravel supports multiple cache drivers—Redis, Memcached, file, database. I use Cache::remember() to fetch or compute and cache values with expiration. Ca

Redis-Based Distributed Mutex (with TTL)

Sometimes you need “only one runner globally” (backfills, refresh jobs). A Redis mutex with TTL avoids deadlocks if the process dies. It’s not perfect, but it’s a solid pragmatic tool.

Action Cable Presence Tracking (Lightweight)

Presence is often more about “who is here now” than perfect accuracy. Use Redis sets with expiries updated by pings. This keeps the system simple and operationally understandable.

Rate Limiting with Redis + Increment Expiry

A simple fixed-window rate limiter is often enough for endpoints like login, password reset, webhooks, or expensive searches. Use atomic Redis INCR + EXPIRE with a stable key and return remaining quota for UX.