Compatibilidad con memcached para MySQL
Amazon RDS admite el uso de la interfaz memcached
para las tablas de InnoDB que se introdujo en MySQL 5.6. La API de memcached
permite a las aplicaciones utilizar las tablas de InnoDB de una manera similar a los almacenes de datos clave-valor de NoSQL.
La interfaz memcached
es una caché sencilla y basada en claves. Las aplicaciones utilizan memcached
para insertar, manipular y recuperar pares de datos de clave-valor de la memoria caché. MySQL 5.6 introdujo un complemento que implementa un servicio de daemon que expone los datos de las tablas de InnoDB a través del protocolo de memcached
. Para obtener más información acerca del complemento memcached
de MySQL, consulte InnoDB Integration with memcached
A fin de habilitar el soporte de memcached para una instancia de base de datos RDS para MySQL
-
Determine el grupo de seguridad que se utilizará para controlar el acceso a la interfaz
memcached
. Si el conjunto de aplicaciones que utilizan la interfaz SQL es el mismo que tendrá acceso a la interfazmemcached
, puede utilizar el grupo de seguridad de la VPC existente utilizado por la interfaz de SQL. Si otro conjunto de aplicaciones va a acceder a la interfazmemcached
, defina un grupo de seguridad de base de datos nuevo o una VPC nueva. Para obtener más información acerca de la administración de grupos de seguridad, consulte Control de acceso con grupos de seguridad -
Cree un grupo de opciones de base de datos personalizado, seleccionando MySQL como versión y tipo de motor. Para obtener más información acerca de cómo crear un grupo de opciones, consulte Creación de un grupo de opciones.
-
Añada la opción
MEMCACHED
al grupo de opciones. Especifique el puerto que utilizará la interfazmemcached
y el grupo de seguridad que se utilizará para controlar el acceso a la interfaz. Para obtener más información acerca de la adición de opciones, consulte Agregar una opción a un grupo de opciones. -
Modifique las opciones para configurar los parámetros de
memcached
, si es necesario. Para obtener más información acerca de cómo modificar la configuración de las opciones, consulte Modificación de una configuración de opciones. -
Aplique el grupo de opciones a una instancia. Amazon RDS permite usar
memcached
para esa instancia cuando se aplica el grupo de opciones:Para poder usar
memcached
para una instancia nueva, especifique el grupo de opciones personalizado al lanzar la instancia. Para obtener más información acerca de cómo lanzar una instancia de MySQL, consulte Creación de una instancia de base de datos de Amazon RDS.Para poder usar
memcached
para una instancia existente, especifique el grupo de opciones personalizado al modificar la instancia. Para obtener más información acerca de la modificación de una instancia de base de datos de , consulte Modificación de una instancia de base de datos de Amazon RDS.
-
Especifique las columnas de las tablas de MySQL a las que se puede obtener acceso a través de la interfaz
memcached
. El complementomemcached
crea una tabla de catálogo denominadacontainers
en una base de datos dedicada denominadainnodb_memcache
. Inserte una fila en la tablacontainers
para asignar una tabla de InnoDB para el acceso a través dememcached
. Especifique la columna de la tabla de InnoDB que se utiliza para almacenar los valores de clave dememcached
, y una o varias columnas que se utilizan para almacenar los valores de datos asociados a la clave. También debe especificar el nombre que utiliza una aplicación dememcached
para referirse a ese conjunto de columnas. Para obtener información detallada sobre cómo insertar filas en la tablacontainers
, consulte InnoDB memcached Plugin Internals. Para obtener un ejemplo de mapeo de una tabla InnoDB y acceso a ella a través de memcached
, consulte Writing Applications for the InnoDB memcached Plugin. -
Si las aplicaciones que acceden a la interfaz
memcached
se encuentran en equipos o instancias EC2 diferentes de los de las aplicaciones que utilizan la interfaz de SQL, añada la información de conexión para esos equipos al grupo de seguridad de la VPC asociado a la instancia de MySQL. Para obtener más información acerca de la administración de grupos de seguridad, consulte Control de acceso con grupos de seguridad.
Para desactivar la compatibilidad con memcached
en una instancia, modifique la instancia y especifique el grupo de opciones predeterminado para la versión de MySQL. Para obtener más información acerca de la modificación de una instancia de base de datos de , consulte Modificación de una instancia de base de datos de Amazon RDS.
Consideraciones de seguridad de la interfaz memcached de MySQL
El protocolo de memcached
no admite la autenticación de usuarios. Para obtener más información sobre las consideraciones de seguridad de memcached
de MySQL, consulte Security Considerations for the InnoDB memcached Plugin
Puede realizar las siguientes acciones para aumentar la seguridad de la interfaz memcached
:
Al añadir la opción
MEMCACHED
al grupo de opciones, especifique un puerto distinto del predeterminado (11211).Asegúrese de asociar la interfaz
memcached
a un grupo de seguridad de VPC que limite el acceso a las direcciones de los clientes o las instancias EC2 que sean conocidas y de confianza. Para obtener más información acerca de la administración de grupos de seguridad, consulte Control de acceso con grupos de seguridad.
Información sobre la conexión de la interfaz memcached de MySQL
Para acceder a la interfaz memcached
, una aplicación debe especificar tanto el nombre de DNS de la instancia de Amazon RDS como el número de puerto de memcached
. Por ejemplo, si una instancia tiene el nombre de DNS my-cache-instance.cg034hpkmmjt.region.rds.amazonaws.com
y la interfaz memcached utiliza el puerto 11212, la información de conexión especificada en PHP sería:
<?php $cache = new Memcache; $cache->connect('my-cache-instance.cg034hpkmmjt.region.rds.amazonaws.com',11212); ?>
Para encontrar el nombre DNS y el puerto de memcached de una instancia de base de datos de MySQL
Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/
. En la esquina superior derecha de la AWS Management Console, seleccione la región que contiene la instancia de base de datos.
En el panel de navegación, seleccione Databases (Bases de datos).
Seleccione el nombre de la instancia de base de datos MySQL para mostrar sus detalles.
En la sección Connect, anote el valor del campo Endpoint. El nombre DNS será igual al punto de enlace. Asimismo, observe que el puerto de la sección Connect no se utiliza para obtener acceso a la interfaz de
memcached
.En la sección Details, anote el nombre que aparece en el campo Option Group.
En el panel de navegación, elija Option groups (Grupos de opciones).
Seleccione el nombre del grupo de opciones utilizado por la instancia de base de datos MySQL para mostrar los detalles del grupo de opciones. En la sección Options, anote el valor de la configuración Port de la opción MEMCACHED.
Opciones de configuración de la interfaz memcached de MySQL
Amazon RDS expone los parámetros de la interfaz memcached
de MySQL como opciones de configuración de la opción MEMCACHED
de Amazon RDS.
Parámetros de la interfaz memcached de MySQL
DAEMON_MEMCACHED_R_BATCH_SIZE
: valor entero que especifica cuántas operaciones de lectura (get) dememcached
se deben realizar antes de utilizar COMMIT para iniciar una transacción nueva. Los valores permitidos son de 1 a 4294967295, el valor predeterminado es 1. La opción no surtirá efecto hasta que no se reinicie la instancia.DAEMON_MEMCACHED_W_BATCH_SIZE
: valor entero que especifica cuántas operaciones de escritura dememcached
, como add, set o incr, se deben realizar antes de utilizar COMMIT para iniciar una transacción nueva. Los valores permitidos son de 1 a 4294967295, el valor predeterminado es 1. La opción no surtirá efecto hasta que no se reinicie la instancia.INNODB_API_BK_COMMIT_INTERVAL
: valor entero que especifica la frecuencia con la que se confirmarán automáticamente las conexiones inactivas que utilizan la interfazmemcached
de InnoDB. Los valores permitidos son de 1 a 1073741824, el valor predeterminado es 5. La opción entra en vigor inmediatamente, sin necesidad de reiniciar la instancia.INNODB_API_DISABLE_ROWLOCK
: valor booleano que desactiva (1 (true)) o activa (0 (false)) el uso de los bloqueos de filas cuando se utiliza la interfazmemcached
de InnoDB. El valor predeterminado es 0 (false). La opción no surtirá efecto hasta que no se reinicie la instancia.INNODB_API_ENABLE_MDL
: valor booleano que, cuando se establece en 0 (false), bloquea la tabla utilizada por el complementomemcached
de InnoDB, de modo que no pueda ser eliminado ni alterado por DDL a través de la interfaz de SQL. El valor predeterminado es 0 (false). La opción no surtirá efecto hasta que no se reinicie la instancia.INNODB_API_TRX_LEVEL
: valor entero que especifica el nivel de aislamiento de transacciones para las consultas procesadas por la interfazmemcached
. Los valores permitidos son de 0 a 3. El valor predeterminado es 0. La opción no surtirá efecto hasta que no se reinicie la instancia.
Amazon RDS configura estos parámetros de memcached
en MySQL y no es posible modificarlos: DAEMON_MEMCACHED_LIB_NAME
, DAEMON_MEMCACHED_LIB_PATH
e INNODB_API_ENABLE_BINLOG
. Los parámetros que los administradores de MySQL establecen utilizando daemon_memcached_options
están disponibles como opciones de configuración individuales de MEMCACHED
en Amazon RDS.
Parámetros de daemon_memcached_options de MySQL
BINDING_PROTOCOL
: cadena que especifica el protocolo de enlace que se va a utilizar. Los valores permitidos sonauto
,ascii
obinary
. El valor predeterminado esauto
, que significa que el servidor negocia automáticamente el protocolo con el cliente. La opción no surtirá efecto hasta que no se reinicie la instancia.BACKLOG_QUEUE_LIMIT
– valor entero que especifica cuántas conexiones de red pueden estar esperando a que las procesememcached
. Si se aumenta este límite, se pueden reducir los errores recibidos por un cliente que no puede conectarse a la instancia dememcached
, pero no se mejora el desempeño del servidor. Los valores permitidos son de 1 a 2048, el valor predeterminado es 1024. La opción no surtirá efecto hasta que no se reinicie la instancia.CAS_DISABLED
: valor booleano que activa (1 (verdadero)) o desactiva (0 (false)) el uso de la función de comparación e intercambio (CAS), lo que reduce el tamaño por cada elemento en 8 bytes. El valor predeterminado es 0 (false). La opción no surtirá efecto hasta que no se reinicie la instancia.CHUNK_SIZE
: valor entero que especifica el tamaño mínimo del fragmento, en bytes, que se debe asignar para la clave, el valor y las marcas del elemento más pequeño. Los valores permitidos son de 1 a 48. El valor predeterminado es 48, y se puede mejorar significativamente la eficiencia de la memoria con un valor inferior. La opción no surtirá efecto hasta que no se reinicie la instancia.CHUNK_SIZE_GROWTH_FACTOR
: valor de coma flotante que controla el tamaño de los fragmentos nuevos. El tamaño de un fragmento nuevo es el tamaño de fragmento anterior multiplicado porCHUNK_SIZE_GROWTH_FACTOR
. Los valores permitidos son de 1 a 2, el valor predeterminado es 1.25. La opción no surtirá efecto hasta que no se reinicie la instancia.ERROR_ON_MEMORY_EXHAUSTED
: valor booleano que, cuando se establece en 1 (true), especifica quememcached
devolverá un error en lugar de desalojar elementos cuando no haya más memoria para almacenar elementos. Si se establece en 0 (false),memcached
desalojará elementos cuando no haya más memoria. El valor predeterminado es 0 (false). La opción no surtirá efecto hasta que no se reinicie la instancia.MAX_SIMULTANEOUS_CONNECTIONS
: valor entero que especifica el número máximo de conexiones simultáneas. Si este valor es menor que 10, MySQL no se iniciará. Los valores permitidos son de 10 a 1024, el valor predeterminado es 1024. La opción no surtirá efecto hasta que no se reinicie la instancia.VERBOSITY
: cadena que especifica el nivel de información que el serviciomemcached
registra en el registro de errores de MySQL. La opción predeterminada es v. La opción no surtirá efecto hasta que no se reinicie la instancia. Los valores permitidos son:v
: registra los errores y las advertencias mientras de ejecuta el bucle del evento principal.vv
: además de la información registrada por v, también registra cada comando de cliente y la respuesta.vvv
: además de la información registrada por vv, también registra las transiciones entre los estados internos.
Amazon RDS configura estos parámetros de DAEMON_MEMCACHED_OPTIONS
en MySQL; no es posible modificarlos: DAEMON_PROCESS
, LARGE_MEMORY_PAGES
, MAXIMUM_CORE_FILE_LIMIT
, MAX_ITEM_SIZE
, LOCK_DOWN_PAGE_MEMORY
, MASK
, IDFILE
, REQUESTS_PER_EVENT
, SOCKET
y USER
.