View a markdown version of this page

Lire et écrire des données dans le cache - Amazon ElastiCache

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Lire et écrire des données dans le cache

Cette section suppose que vous avez créé une instance Amazon EC2 et que vous pouvez vous y connecter. Pour obtenir des instructions sur la façon de procéder, consultez le Guide de démarrage Amazon EC2.

Par défaut, ElastiCache crée un cache dans votre VPC par défaut. Assurez-vous que votre instance EC2 est également créée dans le VPC par défaut, afin qu’elle puisse se connecter au cache.

Recherche du point de terminaison de votre cache

AWS Management Console

Pour trouver le point de terminaison de votre cache à l'aide de la ElastiCache console :

  1. Connectez-vous à la ElastiCache console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/elasticache/.

  2. Dans le volet de navigation à gauche de la console, choisissez Caches Memcached.

  3. À droite de la console, cliquez sur le nom du cache que vous venez de créer.

  4. Dans Détails du cache, localisez et copiez le point de terminaison du cache.

AWS CLI

L' AWS CLI exemple suivant montre comment rechercher le point de terminaison de votre nouveau cache à l'aide de la commande describe-serverless-caches. Une fois que vous avez exécuté la commande, recherchez le champ « Endpoint ».

Linux

aws elasticache describe-serverless-caches \ --serverless-cache-name CacheName

Windows

aws elasticache describe-serverless-caches ^ --serverless-cache-name CacheName

Pour en savoir plus sur la connexion à l’aide d’OpenSSL, consultez ElastiCache chiffrement en transit (TLS).

Note

L'exemple suivant utilise le AWS fork du client spymemcached, aws-elasticache-cluster-client-memcached-for-java. La setSSLContext méthode n'est disponible que dans ce fork et ne fait pas partie de la bibliothèque open-source standard spymemcached.

import java.security.KeyStore; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManagerFactory; import net.spy.memcached.AddrUtil; import net.spy.memcached.ConnectionFactoryBuilder; import net.spy.memcached.FailureMode; import net.spy.memcached.MemcachedClient; public class TLSDemo { public static void main(String[] args) throws Exception { ConnectionFactoryBuilder connectionFactoryBuilder = new ConnectionFactoryBuilder(); // Build SSLContext TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init((KeyStore) null); SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, tmf.getTrustManagers(), null); // Create the client in TLS mode connectionFactoryBuilder.setSSLContext(sslContext); // Set Failure Mode to Retry connectionFactoryBuilder.setFailureMode(FailureMode.Retry); MemcachedClient client = new MemcachedClient(connectionFactoryBuilder.build(), AddrUtil.getAddresses("mycluster-fnjyzo.serverless.use1.cache.amazonaws.com:11211")); // Store a data item for an hour. client.set("theKey", 3600, "This is the data value"); } }
<?php $cluster_endpoint = "mycluster.serverless.use1.cache.amazonaws.com"; $server_port = 11211; /* Initialize a persistent Memcached client in TLS mode */ $tls_client = new Memcached('persistent-id'); $tls_client->addServer($cluster_endpoint, $server_port); if(!$tls_client->setOption(Memcached::OPT_USE_TLS, 1)) { echo $tls_client->getLastErrorMessage(), "\n"; exit(1); } $tls_config = new MemcachedTLSContextConfig(); $tls_config->hostname = '*.serverless.use1.cache.amazonaws.com'; $tls_config->skip_cert_verify = false; $tls_config->skip_hostname_verify = false; $tls_client->createAndSetTLSContext((array)$tls_config); /* store the data for 60 seconds in the cluster */ $tls_client->set('key', 'value', 60); ?>

Consultez https://pymemcache.readthedocs.io/en/latest/getting_started.html

import ssl from pymemcache.client.base import Client context = ssl.create_default_context() cluster_endpoint = <To be taken from the AWS CLI / console> target_port = 11211 memcached_client = Client(("{cluster_endpoint}", target_port), tls_context=context) memcached_client.set("key", "value", expire=500, noreply=False) assert self.memcached_client.get("key").decode() == "value"

Voir https://github.com/electrode-io/memcacheet https://www.npmjs.com/package/memcache-client

Procédez à l’installation via npm i memcache-client

Dans l’application, créez un client TLS Memcached comme suit :

var memcache = require("memcache-client"); const client = new memcache.MemcacheClient({server: "{cluster_endpoint}:11211", tls: {}}); client.set("key", "value");

Consultez https://crates.io/crates/memcache et https://github.com/aisk/rust-memcache.

// create connection with to memcached server node: let client = memcache::connect("memcache+tls://<cluster_endpoint>:11211?verify_mode=none").unwrap(); // set a string value client.set("foo", "bar", 0).unwrap();

Consultez https://github.com/bradfitz/gomemcache

c := New(net.JoinHostPort("{cluster_endpoint}", strconv.Itoa(port))) c.DialContext = func(ctx context.Context, network, addr string) (net.Conn, error) { var td tls.Dialer td.Config = &tls.Config{} return td.DialContext(ctx, network, addr) } foo := &Item{Key: "foo", Value: []byte("fooval"), Flags: 123} err := c.Set(foo)

Consultez https://github.com/petergoldstein/dalli

require 'dalli' ssl_context = OpenSSL::SSL::SSLContext.new ssl_context.ssl_version = :SSLv23 ssl_context.verify_hostname = true ssl_context.verify_mode = OpenSSL::SSL::VERIFY_PEER client = Dalli::Client.new("<cluster_endpoint>:11211", :ssl_context => ssl_context); client.get("abc")

Consultez https://github.com/cnblogs/EnyimMemcachedCore

"MemcachedClient": { "Servers": [ { "Address": "{cluster_endpoint}", "Port": 11211 } ], "UseSslStream": true }

Vous pouvez maintenant passer à l’(Facultatif) Nettoyer.