Suporte a memcached MySQL
O Amazon RDS oferece suporte ao uso da interface memcached
para tabelas do InnoDB introduzido no MySQL 5.6. A API memcached
permite que os aplicativos usem as tabelas do InnoDB de forma semelhante aos armazenamentos de dados de chave/valor NoSQL.
A interface memcached
é um cache simples baseado em chave. Os aplicativos usam memcached
para inserir, manipular e recuperar pares de dados de valor/chave do cache. O MySQL 5.6 introduziu um plugin que implementa um serviço de daemon que expõe os dados das tabelas do InnoDB através do protocolo memcached
. Para ter mais informações sobre o plug-in memcached
MySQL, consulte Integração do InnoDB com memcached
Como habilitar o suporte a memcached para uma instância de banco de dados do RDS para MySQL
-
Determine o grupo de segurança a ser usado para controlar o acesso à interface de
memcached
. Se o conjunto de aplicações que já estão usando a interface SQL for o mesmo conjunto que acessará a interfacememcached
, você poderá usar o grupo de segurança de VPC existente usado pela interface SQL. Se um conjunto diferente de aplicativos acessar a interfacememcached
, defina um novo grupo de segurança de VPC ou grupo de segurança de banco de dados. Para ter mais informações sobre como gerenciar grupo de seguranças, consulte Controlar acesso com grupos de segurança -
Crie um grupo de opções de banco de dados personalizado, selecionando MySQL como o tipo e a versão do mecanismo. Para ter mais informações sobre como criar um grupo de opções, consulte Criar um grupo de opções.
-
Adicione a opção
MEMCACHED
ao grupo de opções. Especifique a porta que a interfacememcached
usará e o grupo de segurança a ser usado para controlar o acesso à interface. Para mais informações sobre a adição de opções, consulte Adicionar uma opção a um grupo de opções. -
Modifique as configurações de opções para configurar os parâmetros
memcached
, se necessário. Para mais informações sobre como modificar as configurações da opção, consulte Modificar uma configuração de opção. -
Aplique o grupo de opções a uma instância. O Amazon RDS habilita o suporte ao
memcached
para essa instância quando o grupo de opções for aplicado:Você habilita o suporte de
memcached
para uma nova instância especificando o grupo de opções personalizado ao executar a instância. Para ter mais informações sobre como executar uma instância MySQL, consulte Criar uma instância de banco de dados do Amazon RDS.Você habilita o suporte de
memcached
para uma instância existente especificando o grupo de opções personalizado ao modificar a instância. Para ter mais informações sobre a modificação de uma instância de banco de dados , consulte Modificar uma instância de banco de dados do Amazon RDS.
-
Especifique quais colunas em suas tabelas MySQL podem ser acessadas por meio da interface de
memcached
. O plug-inmemcached
cria uma tabela de catálogo chamadacontainers
em um banco de dados dedicado chamadoinnodb_memcache
. Você insere uma linha na tabelacontainers
para mapear uma tabela do InnoDB para acesso viamemcached
. Você especifica uma coluna na tabela do InnoDB que é usada para armazenar os valores das chaves domemcached
e uma ou mais colunas que são usadas para armazenar os valores de dados associados à chave. Você também especifica um nome que um aplicativomemcached
usa para se referir a esse conjunto de colunas. Para obter detalhes sobre como inserir linhas na tabelacontainers
, consulte Elementos internos do plug-in memcached do InnoDB. Para obter um exemplo de mapeamento de uma tabela do InnoDB e acessá-la por meio de memcached
, consulte Writing applications for the InnoDB memcached plugin. -
Se as aplicações que acessarem a interface
memcached
estiverem em computadores ou instâncias do EC2 diferentes das aplicações que usam a interface SQL, adicione as informações de conexão desses computadores ao grupo de segurança de VPC associado à instância MySQL. Para ter mais informações sobre como gerenciar grupo de seguranças, consulte Controlar acesso com grupos de segurança.
Você desliga o suporte memcached
para uma instância modificando essa instância e especificando o grupo de opções padrão para sua versão do MySQL. Para ter mais informações sobre a modificação de uma instância de banco de dados , consulte Modificar uma instância de banco de dados do Amazon RDS.
Considerações sobre segurança do MySQL memcached
O protocolo memcached
não oferece suporte para a autenticação do usuário. Para ter mais informações sobre as considerações de segurança do MySQL memcached
, consulte Considerações de segurança para o plug-in memcached do InnoDB
Você pode realizar as seguintes ações para ajudar a aumentar a segurança da interface memcached
:
Especifique uma porta diferente do padrão de 11211 ao adicionar a opção
MEMCACHED
ao grupo de opções.Certifique-se de associar a interface
memcached
com um grupo de segurança de VPC que limite o acesso a endereços de clientes conhecidos ou confiáveis e a instâncias do EC2. Para ter mais informações sobre como gerenciar grupo de seguranças, consulte Controlar acesso com grupos de segurança.
Informações sobre conexão com MySQL memcached
Para acessar a interface memcached
, um aplicativo deve especificar o nome DNS da instância do Amazon RDS e o número da porta memcached
. Por exemplo, se uma instância tiver um nome DNS my-cache-instance.cg034hpkmmjt.region.rds.amazonaws.com
e a interface memcached estiver usando a porta 11212, as informações de conexão especificadas no PHP serão:
<?php $cache = new Memcache; $cache->connect('my-cache-instance.cg034hpkmmjt.region.rds.amazonaws.com',11212); ?>
Para encontrar o nome DNS e a porta memcached de uma instância do MySQL
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. No canto superior direito do AWS Management Console, selecione a região que contém a instância de banco de dados.
No painel de navegação, escolha Databases (Bancos de dados).
Escolha o nome da instância de banco de dados MySQL para exibir os detalhes.
Na seção Connect (Conectar), anote o valor do campo Endpoint. O nome do DNS é o mesmo que o do endpoint. Além disso, observe que a porta na seção Connect (Conectar) não é usada para acessar a interface
memcached
.Na seção Details (Detalhes), anote o nome listado no campo Option Group (Grupo de opções).
No painel de navegação, escolha Option groups (Grupos de opções).
Escolha o nome do grupo de opções usado pela instância de banco de dados MySQL para mostrar os detalhes do grupo de opções. Na seção Options (Opções), anote o valor da configuração de Port (Porta) na opção MEMCACHED.
Configurações de opções de MySQL memcached
O Amazon RDS expõe os parâmetros memcached
do MySQL como configurações de opções na opção MEMCACHED
do Amazon RDS.
Parâmetros de MySQL memcached
DAEMON_MEMCACHED_R_BATCH_SIZE
– um inteiro que especifica quantas operações de leituramemcached
devem ser realizadas antes de fazer um COMMIT para iniciar uma nova transação. Os valores permitidos são de 1 a 4294967295; o padrão é 1. A opção não terá efeito até que a instância seja reiniciada.DAEMON_MEMCACHED_W_BATCH_SIZE
– um inteiro que especifica quantas operações de gravaçãomemcached
, como adicionar, definir ou aumentar, devem ser realizadas antes de fazer um COMMIT para iniciar uma nova transação. Os valores permitidos são de 1 a 4294967295; o padrão é 1. A opção não terá efeito até que a instância seja reiniciada.INNODB_API_BK_COMMIT_INTERVAL
– um inteiro que especifica com que frequência as conexões inativas de confirmação automática usam a interfacememcached
do InnoDB. Os valores permitidos são de 1 a 1073741824; o padrão é 5. A opção entra em vigor imediatamente, sem exigir que você reinicie a instância.INNODB_API_DISABLE_ROWLOCK
– um booliano que desabilita (1 (true)) ou habilita (0 (false)) o uso de bloqueios de linha ao usar a interfacememcached
do InnoDB. O padrão é 0 (false). A opção não terá efeito até que a instância seja reiniciada.INNODB_API_ENABLE_MDL
– um booliano que, quando definido como 0 (false), bloqueia a tabela usada pelo plug-inmemcached
do InnoDB, de modo que ela não possa ser descartada ou alterado pela DDL por meio da interface SQL. O padrão é 0 (false). A opção não terá efeito até que a instância seja reiniciada.INNODB_API_TRX_LEVEL
– um número inteiro que especifica o nível de isolamento da transação para consultas processadas pela interfacememcached
. Os valores permitidos são de 0 a 3. O padrão é 0. A opção não terá efeito até que a instância seja reiniciada.
O Amazon RDS configura esses parâmetros memcached
MySQL, e eles não podem ser modificados: DAEMON_MEMCACHED_LIB_NAME
, DAEMON_MEMCACHED_LIB_PATH
e INNODB_API_ENABLE_BINLOG
. Os parâmetros que os administradores MySQL definem usando daemon_memcached_options
estão disponíveis como configurações da opção MEMCACHED
individuais no Amazon RDS.
Parâmetros daemon_memcached_options MySQL
BINDING_PROTOCOL
– uma string que especifica o protocolo de associação a ser usado. Os valores permitidos sãoauto
,ascii
oubinary
. O padrão éauto
, o que significa que o servidor negocia automaticamente o protocolo com o cliente. A opção não terá efeito até que a instância seja reiniciada.BACKLOG_QUEUE_LIMIT
– um número inteiro que especifica quantas conexões de rede podem estar aguardando para serem processadas pormemcached
. Aumentar esse limite pode reduzir os erros recebidos por um cliente que não seja capaz de se conectar à instânciamemcached
, mas não melhora a performance do servidor. Os valores permitidos são de 1 a 2048; o padrão é 1024. A opção não terá efeito até que a instância seja reiniciada.CAS_DISABLED
– um booliano que permite (1 (true)) ou desabilite (0 (false)) o uso do recurso de comparação e permuta (CAS), o que reduz o tamanho por item em 8 bytes. O padrão é 0 (false). A opção não terá efeito até que a instância seja reiniciada.CHUNK_SIZE
– um número inteiro que especifica o tamanho mínimo do bloco, em bytes, para alocar a chave, o valor e os sinalizadores do menor item. Os valores permitidos são de 1 a 48. O padrão é 48 e você pode melhorar significativamente a eficiência da memória com um valor menor. A opção não terá efeito até que a instância seja reiniciada.CHUNK_SIZE_GROWTH_FACTOR
– um flutuante que controla o tamanho de novos blocos. O tamanho de um novo bloco é o tamanho do bloco anterior vezesCHUNK_SIZE_GROWTH_FACTOR
. Os valores permitidos são de 1 a 2; o padrão é 1.25. A opção não terá efeito até que a instância seja reiniciada.ERROR_ON_MEMORY_EXHAUSTED
– um booliano, quando definido como 1 (true), especifica quememcached
retornará um erro ao invés de despejar itens quando não houver mais memória para armazenar itens. Se definido como 0 (false),memcached
expulsará itens se não houver mais memória. O padrão é 0 (false). A opção não terá efeito até que a instância seja reiniciada.MAX_SIMULTANEOUS_CONNECTIONS
– um inteiro que especifica o número máximo de conexões simultâneas. Definir esse valor como qualquer coisa abaixo de 10 impede que o MySQL seja iniciado. Os valores permitidos são de 10 a 1024; o padrão é 1024. A opção não terá efeito até que a instância seja reiniciada.VERBOSITY
– uma string que especifica o nível de informações registradas no log de erros do MySQL pelo serviçomemcached
. O padrão é v. A opção não terá efeito até que a instância seja reiniciada. Os valores permitidos são:v
– registra erros e avisos durante a execução do loop de eventos principal.vv
– Além das informações registradas por v, também registra cada comando do cliente e a resposta.vvv
– Além das informações registradas por vv, também registra transições de estado internas.
O Amazon RDS configura esses parâmetros DAEMON_MEMCACHED_OPTIONS
MySQL, eles não podem ser modificados: DAEMON_PROCESS
, LARGE_MEMORY_PAGES
, MAXIMUM_CORE_FILE_LIMIT
, MAX_ITEM_SIZE
, LOCK_DOWN_PAGE_MEMORY
, MASK
, IDFILE
, REQUESTS_PER_EVENT
, SOCKET
e USER
.