Code Explainers

Code explainers tagged #redis

python
import hashlib
import json
from functools import wraps
from flask import g, request, jsonify, current_app

Building an idempotency decorator in Flask

idempotency decorators redis
Advanced 7 steps
typescript
import {
  CallHandler,
  ConflictException,
  ExecutionContext,

Idempotent POST requests in NestJS with Redis

idempotency interceptor redis
Advanced 7 steps
go
package handlers
 
import (
	"context"

A custom Gin validator backed by Redis

validation redis struct-tags
Intermediate 8 steps
java
@Service
public class WebhookDedupService {
 
    private static final Logger log = LoggerFactory.getLogger(WebhookDedupService.class);

Idempotent webhooks with Redis in Spring

idempotency redis deduplication
Intermediate 7 steps
java
@Component
public class IdempotencyFilter extends OncePerRequestFilter {
 
    private final StringRedisTemplate redis;

Building an idempotency filter with Redis in Spring

idempotency redis distributed-locking
Advanced 10 steps
javascript
import { NextResponse } from 'next/server';
import { Redis } from '@upstash/redis';
 
export const runtime = 'edge';

A deduped page-view counter in Next.js

edge-runtime redis rate-limiting
Intermediate 8 steps
go
package middleware
 
import (
	"context"

Per-tenant daily rate limiting in Gin

rate-limiting middleware redis
Intermediate 8 steps
php
<?php
 
namespace App\Queue;
 

Deduplicating a job queue with Redis

deduplication redis atomicity
Advanced 8 steps
javascript
import { NextResponse } from 'next/server';
import { Redis } from '@upstash/redis';
 
const redis = Redis.fromEnv();

Sliding-window rate limiting in a Next.js route

rate-limiting redis sorted-set
Advanced 8 steps
go
func UserDashboardCache(rdb *redis.Client, ttl time.Duration) gin.HandlerFunc {
	return func(c *gin.Context) {
		claims, ok := c.Get("claims")
		if !ok {

Per-user response caching in Gin with Redis

middleware caching redis
Advanced 9 steps
typescript
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { createClient, RedisClientType } from 'redis';
 

Provide a Redis client with a NestJS factory

dependency-injection async-factory redis
Intermediate 6 steps
go
package middleware
 
import (
	"bytes"

Idempotent requests in Gin with Redis

idempotency caching middleware
Advanced 10 steps
php
<?php
 
namespace App\RateLimiting;
 

Sliding-window rate limiting with Redis sorted sets

rate-limiting redis sorted-sets
Advanced 8 steps
java
@Configuration
@EnableRedisHttpSession(namespace = "myapp:sessions", maxInactiveIntervalInSeconds = 1800, flushMode = FlushMode.IMMEDIATE)
public class SessionConfig {
 

Backing HTTP sessions with Redis in Spring

session-management redis distributed-state
Intermediate 7 steps
ruby
class SyncContactsJob < ApplicationJob
  queue_as :external_api
 
  MAX_CONCURRENCY = 5

Rate-limited CRM sync in a Rails job

background-jobs rate-limiting redis
Advanced 9 steps
python
import json
import hashlib
from datetime import timedelta
 

Idempotent payment endpoints in FastAPI

idempotency redis distributed-locking
Advanced 9 steps
python
from flask import Blueprint, jsonify, request, abort
from flask_caching import Cache
 
cache = Cache(config={"CACHE_TYPE": "RedisCache", "CACHE_REDIS_URL": "redis://localhost:6379/0"})

Custom cache keys for Flask endpoints

caching redis cache-invalidation
Intermediate 7 steps
javascript
const express = require('express');
const session = require('express-session');
const RedisStore = require('connect-redis').default;
const { createClient } = require('redis');

Redis-backed session auth in Express

sessions authentication redis
Intermediate 8 steps