Redis Object Cache

Descrição

Um painel de cache de objeto persistente turbinado por Redis. Suporta Predis, PhpRedis (PECL), HHVM, replicação, clustering e WP-CLI.

Para ajustar os parâmetros de conexão, chaves de prefixo de cache ou configurar replicação/clustering, veja as Outras notas.

Fork do Redis Object Cache de Eric Mann e Erick Hitter.

Redis Cache Pro

Um painel de classe comercial de cache de objeto Redis. Realmente confiável, altamente otimizado, totalmente personalizável e com um engenheiro dedicado quando você precisar.

  • Reescrito para desempenho total
  • Concordante com a API de cache de objeto do WordPress
  • Fácil depuração & registro
  • Unidade totalmente testada (100% de cobertura do código)
  • Conexões seguras com TLS
  • Integração perfeita com WP CLI & Debug Bar
  • Otimizado para WooCommerce, Jetpack & Yoast SEO

Saiba mais sobre o Redis Cache Pro.

Parâmetros de conexão

Por padrão o drop-in de cache de objeto irá conectar-se ao Redis usando TCP em 127.0.0.1:6379 e selecionar o banco de dados 0.

Para ajustar os parâmetros de conexão, defina qualquer das seguintes constantes no seu arquivo wp-config.php.

  • WP_REDIS_CLIENT (padrão: não definida)

    Especifica o cliente usado para comunicar com o Redis. Suporta hhvm, pecl e predis.

  • WP_REDIS_SCHEME (padrão: tcp)

    Especifica o protocolo usado para comunicar com uma instância do Redis. Internamente o cliente usa a classe de conexão associada ao esquema específico de conexão. Suporta tcp (TCP/IP), unix (UNIX domain sockets), tls (transport layer security) ou http (protocolo HTTP através de Webdis).

  • WP_REDIS_HOST (padrão: 127.0.0.1)

    IP ou hostname do servidor de destino. Isso é ignorado quando conectando ao Redis usando soquetes de domínio UNIX.

  • WP_REDIS_PORT (padrão: 6379)

    Porta TCP/IP do servidor de destino. Isso é ignorado quando conectando ao Redis usando soquetes de domínio UNIX.

  • WP_REDIS_PATH (padrão: não definida)

    Caminho do arquivo de soquete de domínio UNIX usado ao conectar ao Redis usando soquetes de domínio UNIX.

  • WP_REDIS_DATABASE (padrão: 0)

    Aceita um valor númerico que é usado para selecionar automaticamente um banco de dados lógico com o comando SELECT.

  • WP_REDIS_PASSWORD (padrão: não definida)

    Aceita um valor usado para autenticar com um servidor Redis protegido por senha com o comando AUTH.

  • WP_REDIS_TIMEOUT (padrão: 5)

    Tempo em segundos (rações de segundos são permitidas) para tentar uma conexão inicial ao servidor Redis antes de falhar.

  • WP_REDIS_READ_TIMEOUT (padrão: 5)

    Tempo em segundos (frações de segundos são permitidas) para tentar uma leitura de um servidor Redis antes de falhar.

  • WP_REDIS_RETRY_INTERVAL (padrão: não definida)

    Tempo em milisegundos para tentar novamente após uma falha na conexão.

    Parâmetros de Configuração

    Para ajustar a configuração, defina qualquer uma das constantes no seu arquivo wp-config.php.

  • WP_CACHE_KEY_SALT (padrão: não definida)

    Defina o prefixo para todas as chaves de cache. Útil em configurações onde múltiplas instalações compartilham um arquivo wp-config.php em comum ou $table_prefix para garantir chaves únicas de cache.

  • WP_REDIS_SELECTIVE_FLUSH (padrão: não definida)

    Se definido como true, esvaziar o cache irá apenas excluir o cache do site com as chaves que são prefixadas com WP_CACHE_KEY_SALT (ao invés de esvaziar todo o banco de dados do Redis). O esvaziamento seletivo é uma operação atômica O(n).

  • WP_REDIS_MAXTTL (padrão: não definida)

    Defina o time-to-live máximo (em segundos) para as chaves de cache com um tempo de expiração de 0.

  • WP_REDIS_GLOBAL_GROUPS (padrão: ['blog-details', 'blog-id-cache', 'blog-lookup', 'global-posts', 'networks', 'rss', 'sites', 'site-details', 'site-lookup', 'site-options', 'site-transient', 'users', 'useremail', 'userlogins', 'usermeta', 'user_meta', 'userslugs'])

    Define a lista de grupos de cache na rede que não devem ser prefixados com o blog-id (apenas Multisite).

  • WP_REDIS_IGNORED_GROUPS (padrão: ['counts', 'plugins'])

    Define os grupos de cache que não devem ser armazenados em cache no Redis.

  • WP_REDIS_UNFLUSHABLE_GROUPS (padrão: não definida)

    Defina grupos a não serem esvaziados durante um esvaziamento seletivo do cache.

  • WP_REDIS_DISABLED (padrão: não definida)

    Defina como true para desativar o cache de objeto na execução.

  • WP_REDIS_GRACEFUL (padrão: não definida)

    Defina para false para desativar falhas graciosas e lançar exceções.

  • WP_REDIS_SERIALIZER (padrão: não definida)

    Use os serializadores embutidos no PhpRedis. Os valores suportados são Redis::SERIALIZER_PHP e Redis::SERIALIZER_IGBINARY.

  • WP_REDIS_IGBINARY (padrão: não definida)

    Defina para true para ativar o serializador igbinary. Ignorado quando WP_REDIS_SERIALIZER estiver definido.

  • WP_REDIS_DISABLE_BANNERS (default: não definida)

    Defina para false para desativar as promoções do Redis Cache Pro.

    Replicação & Clustering

    Para usar replicação, sharding ou clustering, certifique-se que o seu servidor está executando o PHP7 ou acima (HHVM não é suportado) e consulte a documentação em Predis ou PhpRedis.

Para replicação use a constante WP_REDIS_SERVERS, para sharding a constante WP_REDIS_SHARDS e para clustering a constante WP_REDIS_CLUSTER.

Para autenticação use a constante WP_REDIS_PASSWORD.

Replicação (Master-Slave):

define( 'WP_REDIS_SERVERS', [
    'tcp://127.0.0.1:6379?database=5&alias=master',
    'tcp://127.0.0.2:6379?database=5&alias=slave-01',
] );

Replicação (Redis Sentinel):

define( 'WP_REDIS_CLIENT', 'predis' );
define( 'WP_REDIS_SENTINEL', 'mymaster' );
define( 'WP_REDIS_SERVERS', [
    'tcp://127.0.0.1:5380',
    'tcp://127.0.0.2:5381',
    'tcp://127.0.0.3:5382',
] );

Sharding:

define( 'WP_REDIS_SHARDS', [
    'tcp://127.0.0.1:6379?database=10&alias=shard-01',
    'tcp://127.0.0.2:6379?database=10&alias=shard-02',
    'tcp://127.0.0.3:6379?database=10&alias=shard-03',
] );

Clustering (Redis 3.0+):

define( 'WP_REDIS_CLUSTER', [
    'tcp://127.0.0.1:6379?database=15&alias=node-01',
    'tcp://127.0.0.2:6379?database=15&alias=node-02',
] );<h3>WP-CLI Commands</h3>

Para usar os comandos WP-CLI, certifique-se que o plugin está ativo:

wp plugin activate redis-cache

Os seguintes comandos são suportados:

  • wp redis status

    Exibe o status e (quando possível) o cliente do cache de objeto Redis.

  • wp redis enable

    Ativa o cache de objeto Redis. O comportamento padrão é criar o drop-in de cache de objeto, exceto se um drop-in de cache de objeto desconhecido estiver presente.

  • wp redis disable

    Desativa o cache de objeto Redis. O comportamento padrão é excluir o drop-in de cache de objeto, exceto se um drop-in de cache de objeto desconhecido estiver presente.

  • wp redis update-dropin

    Atualiza o drop-in do cache de objeto Redis. O comportamento padrão é sobrescrever qualquer drop-in de cache de objeto existente.

Imagens de tela

  • Configurações do plugin, conectado a um único servidor Redis.

  • Configurações do plugin, não conectado a um cluster Redis.

Instalação

Para instruções detalhadas de instalação, veja o procedimento padrão de instalação de plugins do WordPress.

  1. Certifique-se que o Redis está instalado e executando.
  2. Instale e ative o plugin.
  3. Ative o cache de objeto em Configurações -> Redis, ou em instalações multisite em Administração da Rede -> Configurações -> Redis.
  4. Se necessário, ajuste os parâmetros de conexão.

Se o seu servidor não suporta a API de Sistema de Arquivos do WordPress, você terá que copiar manulamente o arquivo object-cache.php do diretório /plugins/redis-cache/includes/ para o diretório /wp-content/.

Avaliações

15 de novembro de 2019
Hi, I can't flush the cache from wp-admin, I have to do this via redis-cli Status: Connected Client: PhpRedis (v4.3.0) Drop-in: Valid Ping: +PONG Redis Extension: 4.3.0 Predis Client: 1.1.1 PHP Version: 7.3.11 Multisite: No Global Prefix: "wp_" Blog Prefix: "wp_" WP_REDIS_DATABASE: "1" WP_REDIS_MAXTTL: "21600" WP_CACHE_KEY_SALT: "salt" Global Groups: { "0": "blog-details", "1": "blog-id-cache", "2": "blog-lookup", "3": "global-posts", "4": "networks", "5": "rss", "6": "sites", "7": "site-details", "8": "site-lookup", "9": "site-options", "10": "site-transient", "11": "users", "12": "useremail", "13": "userlogins", "14": "usermeta", "15": "user_meta", "16": "userslugs", "33": "blog_meta" } Ignored Groups: [ "counts", "plugins", "themes" ] Unflushable Groups: [] Dropins: - advanced-cache.php v by - Redis Object Cache Drop-In v1.5.0 by Till Krüss Plugins: - Cloudflare Flexible SSL v1.3.0 by One Dollar Plugin (Active) - Contact Form 7 v5.1.5 by Takayuki Miyoshi (Active) - ConvertPlug v2.4.0 by Brainstorm Force (Inactive) - Imagify v1.9.8.1 by WP Media (Active) - Loco Translate v2.3.1 by Tim Whitlock (Active) - MC4WP: Mailchimp for WordPress v4.7 by ibericode (Active) - MC4WP: Mailchimp User Sync v1.8.1 by ibericode (Active) - Perfmatters v1.4.4 by forgemedia (Active) - Redis Object Cache v1.5.1 by Till Krüss (Active) - Redux Framework v3.6.16 by Team Redux (Active) - TWB Woocommerce Reviews v1.7.3 by Abu Bakar (Active) - Widget Output Cache v0.5.2 by Kaspars Dambis (Active) - WooCommerce v3.8.0 by Automattic (Active) - WooCommerce Checkout Manager v4.7.4 by QuadLayers (Active) - WooCommerce Email Customizer v4.28 by cxThemes (Active) - WooCommerce Points and Rewards v1.6.23 by WooCommerce (Active) - WooCommerce Print Invoices/Packing Lists v3.7.0 by SkyVerge (Active) - WPBakery Page Builder v6.0.5 by Michael M - WPBakery.com (Active) - WP Mail SMTP v1.7.1 by WPForms (Active) - WP Rocket v2.10.7 by WP Media (Active) - Yoast SEO v12.5 by Team Yoast (Active)
17 de outubro de 2019
Was having hard time with memcached as many of the objects were larger in size than memcached can handle(greater than 1MB). So those queries were being repeated on the MySQL server with the same results. After switching to redis, needed to find out a plugin that just works. Reviewed the code of this plugin and voilà. Tested it out on one site, and subsequently added it to another 30 sites, more on the way. Using and configuring it is quite easy with WP CLI. wp config set WP_REDIS_DATABASE {DifferentDBNumberForEachSite} --raw wp config set WP_CACHE_KEY_SALT {RandomUniqueString} wp plugin install --activate redis-cache wp redis enable Thanks Till Krüss for the such an awesome plugin 🙂
29 de setembro de 2019
Please keep it up to date. It is really helpful plugin! Thank you!
7 de julho de 2019
The plugin does just what it's supposed to do! My site now runs a lot faster. =) I has a problem at first when I tested it on my dev site and then my live site. After that my live site redirected to my dev site which was NOT good at all! But the solution was easy to find on google. I flushed the cashce first with: redis-cli FLUSHALL redis-cli FLUSHDB Then put this in the wp-config.php file of both installs: /* Replace "example" with something unique for each site */ define( 'WP_CACHE_KEY_SALT', 'example' ); define( 'WP_REDIS_SELECTIVE_FLUSH', true); Thanks for the plugin!!!!
Leia todas as 70 avaliações

Contribuidores e desenvolvedores

“Redis Object Cache” é um software com código aberto. As seguintes pessoas contribuíram para este plugin.

Contribuidores

“Redis Object Cache” foi traduzido para 5 localidades. Obrigado aos tradutores por suas contribuições.

Traduzir “Redis Object Cache” para o seu idioma.

Interessado no desenvolvimento?

Navegue pelo código, dê uma olhada no repositório SVN ou assine o registro de desenvolvimento via RSS.

Registro de alterações

1.5.4

  • Métricas removidas

1.5.3

  • Correção: Chamada para função indefinida get_plugin_data()
  • Correção: Chamada para método indefinido WP_Object_Cache::redis_version()

1.5.2

  • Adicionada a versão do Redis aos diagnósticos
  • Adicionada a constante WP_REDIS_DISABLE_BANNERS para desativar promoções
  • Corrigido um problema com redis.replicate_commands()

1.5.1

O plugin fez 5 anos hoje (14 de Novembro) e também hoje será o lançamento da versão comercial.
Redis Cache Pro é uma versão reescrita deste plugin para SMBs realmente confiável, otimizada e fácil de depurar.

  • Adicionadas as horas de execução às ações
  • Adicionada a constante WP_REDIS_VERSION
  • Corrigida a compatibilidade com o PhpRedis v3
  • Corrigido um problema com o esvaziamento seletivo
  • Corrigido um problema com funções mb_* não existentes.
  • Substituída a carta do codificador do endereço de e-mail pela carta do Redis Cache Pro
  • Colete métricas de versão para melhor tomada de decisão

1.5.0

Já que o Predis não é mais mantido, é altamente recomendável trocar para o PhpRedis (a extensão PECL do Redis).

  • Melhorado o construtor de nomes de chaves do Redis
  • Adicionado suporte aos serializadores do PhpRedis
  • Adicionada a ação redis_object_cache_error
  • Adicionado tempo-limite, tempo-limite de leitura e configuração de re-tentativa
  • Adicionados grupos não-esvaziáveis (o padrão é ['userlogins'])
  • Corrigido as senhas não sendo exibidas na lista do servidor

1.4.3

  • Requer o PHP 5.4 ou mais recente
  • Usa impressão elegante nos diagnósticos
  • Lança uma exceção se a biblioteca do Redis estiver faltando
  • Corrigido o cache não sendo esvaziaado para alguns usuários
  • Corrigidos problemas no administrador quando WP_REDIS_DISABLED é false

1.4.2

  • Adicionadas falhas graciosas do Redis e a constante WP_REDIS_GRACEFUL
  • Melhorado o suporte a cluster
  • Adicionado o filtro redis_cache_expiration
  • Renomeado o filtro redis_object_cache_get para redis_object_cache_get_value

1.4.1

  • Corrigido erro fatal potencial relativo a wp_suspend_cache_addition()

1.4.0

  • Adicionado suporte para igbinary
  • Adicionado suporte a wp_suspend_cache_addition()

1.3.9

  • Corrigido o WP_REDIS_SHARDS que não estava sendo exibido na lista do servidor
  • Corrigido o WP_REDIS_SHARDS que não estava funcionando quando usando a extensão PECL
  • Removidos os restos de WP_REDIS_SCHEME e WP_REDIS_PATH

1.3.8

  • Trocado da versão de arquivo único do Predis para a biblioteca completa

1.3.7

  • Revertido de volta à versão de arquivo único do Predis

1.3.6

  • Adicionado suporte ao Redis Sentinel
  • Adicionado suporte a compartilhamento
  • Trocada para a versão PHAR do Predis
  • Diagnósticos melhorados
  • Adicionado WP_REDIS_SELECTIVE_FLUSH
  • Adicionado o parâmetro $fail_gracefully a WP_Object_Cache::__construct()
  • Sempre força WP_REDIS_MAXTTL
  • Passa as ações $selective e $salt para redis_object_cache_flush
  • Não define a constante WP_CACHE_KEY_SALT

1.3.5

  • Adicionados diagnósticos básicos à interface do administrador
  • Adicionada a constante WP_REDIS_DISABLED para desativar o cache na execução
  • Evita o erro “cabeçalho do plugin inválido”
  • Retorna inteiro a partir dos métodos increment() e decrement()
  • Evita que o cache de objeto use mais de uma instância
  • Sempre separa as chaves de cache prefix e group com ponto e vírgula
  • Melhorado o desempenho de build_key()
  • Aplica o filtro redis_object_cache_get apenas se callbacks tiverem sido registrados
  • Corrigido add_or_replace() para definir a chave do cache apenas e ela não existir
  • Adicionada a ação redis_object_cache_flush
  • Adicionada a ação redis_object_cache_enable
  • Adicionada a ação redis_object_cache_disable
  • Adicionada a ação redis_object_cache_update_dropin

1.3.4

  • Adicionado suporte à WP-CLI
  • Exibe o host e a porta exceto se o esquema é unix
  • Atualizada a global padrão e grupos ignorados
  • Esvazia o cache ao ativar, desativar ou desinstalar

1.3.3

  • Atualizado o Predis para a v1.1.1
  • Adicionado o método redis_instance()
  • Adicionado o alias do método incr() para compatibilidade com Batcache
  • Adicionadas as constantes WP_REDIS_GLOBAL_GROUPS e WP_REDIS_IGNORED_GROUPS
  • Adicionada a ação redis_object_cache_delete
  • Usa WP_PLUGIN_DIR com WP_CONTENT_DIR como alternativa
  • Define a senha quando usando um cluster ou replicação
  • Exibe o cliente Redis em stats()
  • Alterada a visibilidade de $cache para pública
  • Usa a sintaxe antiga de array, por garantia

1.3.2

  • Certifique-se que $result não é false emWP_Object_Cache::get()

1.3.1

  • Corrigido problema de conexão

1.3

  • Nova interface do administrador
  • Adicionado suporte para os parâmetros wp_cache_get(), $force e $found
  • Adicionado suporte a clustering e replicação com o Predis

1.2.3

  • Melhorias na UI

1.2.2

  • Adicionada a ação redis_object_cache_set
  • Adicionados a ação e o filtro redis_object_cache_get
  • Evitando mensagens duplicadas de status ao administrador
  • Carrega a biblioteca embutida do Predis apenas se necessário
  • Carrega a biblioteca embutida do Predis usando a constante WP_CONTENT_DIR
  • Atualizada a saída do método stats() para ser uniforme com o WordPress

1.2.1

  • Adicionado o composer.json
  • Adicionados hooks de desativação e desinstalação para excluir object-cache.php
  • Adicionadas funções locais de serialização para melhor suporte a advanced-cache.php
  • Atualizada a versão embutida do Predis para a 1.0.3
  • Atualizada a estrutura do título para ser semântica

1.2

  • Adicionado suporte a Multisite
  • Movido o menu do administrador para dentro do menu Configurações
  • Corrigido aviso do PHP em get_redis_client_name()

1.1.1

  • Chama select() e opcionalmente auth() se a extensão HHVM for usada

1.1

  • Adicionado suporte para a extensão HHVM do Redis
  • Adicionado suporte à extensão PECL do Redis
  • Adicionada a constante WP_REDIS_CLIENT, para definir o cliente Redis preferido
  • Adicionada a constante WP_REDIS_MAXTTL, para forçar a expiração das chaves de cache
  • Melhorados os métodos add_or_replace(), get(), set() e delete()
  • Melhorados os estilos da tela de administração
  • Removida toda a internacionalização/localização do drop-in

1.0.2

  • Adicionado o botão “Esvaziar o Cache”
  • Adicionado suporte a soquetes de domínio UNIX
  • Melhorado significativamente o desempenho da recuperação do cache de objeto
  • Atualizada a biblioteca embutida do Predis para a versão 1.0.1

1.0.1

  • Carrega as traduções do plugin
  • Oculta avisos globais do administrador a partir de usuários não-administradores
  • AVita acesso direto a arquivos para redis-cache.php e admin-page.php
  • Colorizado o botão “Desativar o Cache de Objeto”
  • Chama Predis\Client->connect() para evitar potencial não-captura de Predis\Connection\ConnectionException

1.0

  • Lançamento inicial