读取数据并将其写入缓存 - 亚马逊 ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

读取数据并将其写入缓存

本节假设您已经创建了一个 Amazon EC2 实例并且可以连接到该实例。有关如何执行此操作的说明,请参阅《Amazon EC2 入门指南》

默认情况下,在默认情况下 ElastiCache 创建缓存VPC。确保您的EC2实例也是在默认模式下创建的VPC,以便它能够连接到缓存。

查找缓存端点

Amazon Web Services Management Console

要使用 ElastiCache 控制台查找缓存的终端节点,请执行以下操作:

  1. 登录 Amazon Web Services Management Console 并打开 Amazon ElastiCache 控制台,网址为https://console.aws.amazon.com/elasticache/

  2. 在控制台左侧的导航窗格中,选择 Memcached 缓存

  3. 在控制台的右侧,单击刚刚创建的缓存的名称。

  4. 缓存详细信息中,找到并复制缓存端点。

Amazon CLI

以下 Amazon CLI 示例说明如何使用 describe-serverless-caches命令查找新缓存的终端节点。运行命令后,查找“端点”字段。

Linux

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

Windows

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

有关如何使用 Open 进行连接的信息SSL,请参阅 ElastiCache 传输中加密 () TLS

有关如何使用 Memcached Java 客户端进行连接的信息,请参阅 ElastiCache 传输中加密 () TLS

<?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); ?>

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"

参见https://github.com/electrode-io/内存缓存和内存缓存客户端 https://www.npmjs.com/package/

通过 npm i memcache-client 进行安装

在应用程序中,按如下方式创建 memcached TLS 客户端:

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

请参阅 https://crates.io/crates/memcachehttps://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();

https://github.com/bradfitz/gomemcach e

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)

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")

请参阅 https://github.com/cnblogs/EnyimMemcachedCore

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

您现在可以继续执行(可选)清除