oxcache 0.1.4

A high-performance multi-level cache library for Rust with L1 (memory) and L2 (Redis) caching.
Documentation
# Redis Sentinel模式测试配置
# 用于真实环境下的高可用性测试

version: '3.8'

services:
  # Redis主节点
  redis-master:
    image: redis:latest
    container_name: redis-master
    ports:
      - "16379:6379"
    volumes:
      - ./configs/redis-master.conf:/usr/local/etc/redis/redis.conf
      - redis-master-data:/data
    command: redis-server /usr/local/etc/redis/redis.conf
    networks:
      redis-sentinel:
        ipv4_address: 172.25.0.2
    healthcheck:
      test: [ "CMD", "redis-cli", "ping" ]
      interval: 5s
      timeout: 3s
      retries: 5

  # Redis从节点1
  redis-slave1:
    image: redis:latest
    container_name: redis-slave1
    ports:
      - "26385:6379"
    volumes:
      - ./configs/redis-slave1.conf:/usr/local/etc/redis/redis.conf
      - redis-slave1-data:/data
    command: redis-server /usr/local/etc/redis/redis.conf
    depends_on:
      - redis-master
    networks:
      redis-sentinel:
        ipv4_address: 172.25.0.3
    healthcheck:
      test: [ "CMD", "redis-cli", "ping" ]
      interval: 5s
      timeout: 3s
      retries: 5

  # Redis从节点2
  redis-slave2:
    image: redis:latest
    container_name: redis-slave2
    ports:
      - "26386:6379"
    volumes:
      - ./configs/redis-slave2.conf:/usr/local/etc/redis/redis.conf
      - redis-slave2-data:/data
    command: redis-server /usr/local/etc/redis/redis.conf
    depends_on:
      - redis-master
    networks:
      redis-sentinel:
        ipv4_address: 172.25.0.4
    healthcheck:
      test: [ "CMD", "redis-cli", "ping" ]
      interval: 5s
      timeout: 3s
      retries: 5

  # Sentinel节点1
  redis-sentinel1:
    image: redis:latest
    container_name: redis-sentinel1
    ports:
      - "26382:26379"
    volumes:
      - ./configs/redis-sentinel1.conf:/usr/local/etc/redis/sentinel.conf
      - sentinel1-data:/data
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    depends_on:
      - redis-master
      - redis-slave1
      - redis-slave2
    networks:
      redis-sentinel:
        ipv4_address: 172.25.0.10

  # Sentinel节点2
  redis-sentinel2:
    image: redis:latest
    container_name: redis-sentinel2
    ports:
      - "26383:26379"
    volumes:
      - ./configs/redis-sentinel2.conf:/usr/local/etc/redis/sentinel.conf
      - sentinel2-data:/data
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    depends_on:
      - redis-master
      - redis-slave1
      - redis-slave2
    networks:
      redis-sentinel:
        ipv4_address: 172.25.0.11

  # Sentinel节点3
  redis-sentinel3:
    image: redis:latest
    container_name: redis-sentinel3
    ports:
      - "26384:26379"
    volumes:
      - ./configs/redis-sentinel3.conf:/usr/local/etc/redis/sentinel.conf
      - sentinel3-data:/data
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    depends_on:
      - redis-master
      - redis-slave1
      - redis-slave2
    networks:
      redis-sentinel:
        ipv4_address: 172.25.0.12

networks:
  redis-sentinel:
    driver: bridge
    ipam:
      config:
        - subnet: 172.25.0.0/24

volumes:
  redis-master-data:
  redis-slave1-data:
  redis-slave2-data:
  sentinel1-data:
  sentinel2-data:
  sentinel3-data: