Todos os produtos
Search
Central de documentação

:Implantar uma instância Redis com um volume NVM montado como memória direta

Última atualização: Jun 27, 2026

No Container Service for Kubernetes (ACK), o acesso direto a dispositivos de memória persistente (PMEM) proporciona alto throughput e baixa latência. Este tópico descreve como usar memória dinâmica de acesso aleatório (DRAM) e PMEM para implantar instâncias Redis em memória que exigem grande capacidade.

Informações de fundo

Para implantar instâncias Redis em memória que exigem alta capacidade, monte volumes NVM (memória não volátil) como memória direta. Essa solução oferece os seguintes benefícios:

  • O acesso aos volumes NVM ocorre de forma declarativa, simplificando o uso desses recursos.

  • Redução de custos entre 30% e 50% mantendo a mesma capacidade de memória.

  • Minimização das alterações necessárias nas aplicações.

O Redis utiliza dispositivos NVM como memória direta e chama a função MMAP para mapear o espaço de endereçamento contíguo do PMEM. Nesse cenário, são obrigatórias versões específicas do Redis. Os exemplos a seguir demonstram como consultar as imagens das instâncias Redis.

Usar DRAM para implantar uma instância Redis em memória

A DRAM oferece desempenho de acesso de alta velocidade, mas perde dados ao perder energia. Devido ao custo elevado, esse tipo de memória não é adequado para cenários de grande escala.

  1. Siga as etapas abaixo para implantar uma instância Redis:

    1. Use o modelo de exemplo a seguir para crie um arquivo redis-normal.yaml:

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: redis-normal
        labels:
          app: redis-normal
      spec:
        selector:
          matchLabels:
            app: redis-normal
        template:
          metadata:
            labels:
              app: redis-normal
          spec:
            containers:
            - name: redis
              image: registry.cn-hangzhou.aliyuncs.com/plugins/redis:v1-normal
              imagePullPolicy: Always
              resources:
                requests:
                  memory: 30Gi
                limits:
                  memory: 30Gi
    2. Execute o comando a seguir para implantar a instância Redis:

      kubectl apply -f redis-normal.yaml
  2. Execute o comando a seguir para consultar o pod que executa a instância Redis:

    kubectl get pod | grep redis-normal

    Saída esperada:

    redis-normal-***         1/1     Running   0          4d8h
  3. Execute o comando a seguir para testar o desempenho de gravação da instância Redis:

    LD_PRELOAD=/usr/local/lib/libmemkind.so redis-benchmark -d 102400 -t set -n 1000000 -r 1000000

    Saída esperada:

    1000000 requests completed in 13.03 seconds
    76751.86 requests per second

    A saída anterior indica que a instância Redis em memória implantada com DRAM processa aproximadamente 76.751 solicitações por segundo.

Usar PMEM para implantar uma instância Redis em memória

O PMEM fornece armazenamento não volátil e assemelha-se à DRAM quanto ao método e à velocidade de acesso.

  1. Execute o comando a seguir para implantar uma instância Redis em memória:

    kubectl apply -f redis-normal.yaml

    O modelo a seguir apresenta um exemplo do arquivo redis-normal.yaml:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pmem-pvc-direct
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 60Gi
      storageClassName: csi-pmem-direct
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: redis-pmem-direct
      labels:
        app: redis-pmem-direct
    spec:
      selector:
        matchLabels:
          app: redis-pmem-direct
      template:
        metadata:
          labels:
            app: redis-pmem-direct
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/plugins/redis:v1-pmem
            imagePullPolicy: Always
            volumeMounts:
              - name: pmem-pvc
                mountPath: "/mnt/pmem"
          volumes:
            - name: pmem-pvc
              persistentVolumeClaim:
                claimName: pmem-pvc-direct
  2. Execute o comando a seguir para consultar o pod que executa a instância Redis:

    kubectl get pod | grep redis-pmem-direct

    Saída esperada:

    redis-pmem-direct-5b469546db-5tk2j   1/1     Running   0          4d9h
  3. Execute o comando a seguir para testar o desempenho de gravação da instância Redis:

    LD_PRELOAD=/usr/local/lib/libmemkind.so redis-benchmark -d 10240 -t set -n 1000000 -r 1000000

    Saída esperada:

    1000000 requests completed in 19.89 seconds
    50266.41 requests per second

    A saída anterior demonstra que a instância Redis em memória implantada com PMEM processa cerca de 50.266 solicitações por segundo.

    Em comparação com a instância Redis em memória baseada em DRAM, a versão com PMEM reduz o desempenho de gravação em 34%, mas mantém o mesmo desempenho de leitura e gera uma economia de custos de 50%. Tipos de instância Elastic Compute Service (ECS) equipados com dispositivos NVM, como ecs.ebmre6p.26xlarge, oferecem 1,5 TB de memória MEM — cinco vezes a capacidade dos bancos de dados em memória convencionais.