我能够从EC2实例连接到VPC中的Elasticache redis实例,但我想知道是否有一种方法可以连接到Amazon EC2实例之外的Elasticache Redis节点,例如从我的本地开发设置或其他供应商提供的VPS实例.
目前从我当地的设置尝试时:
redis-cli -h my-node-endpoint -p 6379
Run Code Online (Sandbox Code Playgroud)
一段时间后我才会暂停.
我们使用C#应用程序SignalR和Amazon's ElastiCache作为背板.然而,即使SignalR允许屏蔽掉它仍然发送CONFIG到静默ElastiCache失败的某些命令SignalR(CONFIG不受支持ElastiCache).现在我们SignalR通过删除自动重新配置例程的更改来编译我们自己的二进制文件.
我想知道是否有其他人在这个问题上绊倒并且想看看你是如何解决它的.
最好的想法是为ElastiCache(像Twitter代理)编写代理,但这是一项艰巨的任务.
提前致谢.
我想自己主持一个Redis服务器.我将EC2与Elasticache进行了比较.我想知道EC2的缺点是什么.
EC2微型实例的成本与ELasticache微型实例的成本一样多,但是更多是400 MB的内存.为什么要使用Elasticache而不是在ec2 tiny isntance上设置自己的Redis服务器?
是否可以从AWS Lambda函数连接到Redis ElastiCache集群?
我无法弄清楚这是一个配置问题还是根本不可能.
PS:我从EC2实例进行了测试,我可以连接到Redis节点.此外,Lambda函数和Redis节点位于同一区域.
更新(2015年10月9日):
亚马逊宣布推出适用于AWS Lambda功能的VPC.细节在这里
这意味着我们现在可以访问VPC安全组后面的AWS中的任何资源,包括ElastiCache和RDS计算机.
更新(2016年2月11日): 亚马逊为AWS Lambda推出了VPC.
https://aws.amazon.com/about-aws/whats-new/2016/02/access-resources-within-a-vpc-using-aws-lambda/
我们使用Zend Cache和memcached后端指向具有2个缓存节点的AWS ElastiCache集群.我们的缓存设置如下所示:
$frontend = array(
'lifetime' => (60*60*48),
'automatic_serialization' => true,
'cache_id_prefix' => $prefix
);
$backend = array(
'servers' => array(
array( 'host' => $node1 ),
array( 'host' => $node2 )
)
);
$cache = Zend_Cache::factory('Output', 'memecached', $frontend, $backend);
Run Code Online (Sandbox Code Playgroud)
当使用单个EC2服务器从缓存中写入和读取时,我们没有注意到过去缓存有任何问题.
但是,我们最近推出了第二个EC2服务器,突然间我们从一个服务器写入缓存并从另一个服务器读取时遇到问题.两个服务器都由同一AWS账户管理,并且两个服务器都没有分别写入缓存或从缓存读取的问题.两者都使用相同的缓存配置.
服务器A执行$cache->save('hello', 'message');
$cache->load('message');从服务器A的后续调用返回hello的预期结果.
但是,当服务器B执行时$cache->load('message');,我们会得到错误.
就我对ElastiCache的理解而言,发出读取请求的服务器应该对返回的缓存值没有影响.任何人都可以对此有所了解吗?
php caching zend-framework amazon-web-services amazon-elasticache
AWS通过ElastiCache服务提供Redis支持.我的问题是,我可以使用以下命令从节点连接到AWS Elasticache上的Redis:
var client = require('redis').createClient(6379, 'elastichache endpoint string', {no_ready_check: true});
Run Code Online (Sandbox Code Playgroud)
或者我是否必须使用NodeJS AWS SDK?
我意识到我可以在EC2实例上设置我自己的Redis服务器,但我想使用ElastiCache.这可能吗?
我们正在运行CakePHP 2.9,并使用Elasticache Cluster进行会话存储(通过Memcached存储).
我们已按照此处的建议禁用了PHP的内置会话垃圾回收:https: //tideways.io/profiler/blog/php-session-garbage-collection-the-unknown-performance-bottleneck
session.gc_probability = 0
我们还在probabilityCakePHP的Cache配置中将设置设置为0.
然而; 我们仍然遇到一些问题,偶尔我们会遇到CakeSession :: _ startSession的重大减速问题,正如New Relic报道的那样:
Elasticache集群没有显示任何表明存在问题的指标(除非有一些指标我不能正确理解).
有关如何诊断这一原因的任何建议?
我在AWS文档中找不到任何信息表明修改Redis引擎版本会或不会导致停机。除了在维护时段中执行升级之外,它没有解释升级是如何发生的。
通过 AWS 控制台升级生产 Elasticache Redis 实例是否安全,不会造成数据丢失或停机?
注意:我们使用的客户端库与所有版本的 Redis 兼容,因此应用程序不应注意到升级。
我需要从单个lambda函数连接弹性缓存和dynamo db.我的代码是
exports.handler = (event, context, callback) => {
var redis = require("redis");
var client;
function connectRedisClient() {
client = redis.createClient(6379, "dgdfgdfgdfgdfgdfgfd.use1.cache.amazonaws.com", { no_ready_check: true });
}
connectRedisClient();
client.set('sampleKey', 'Hello World', redis.print);
console.log("set worked");
client.quit();
var AWS = require("aws-sdk");
var docClient = new AWS.DynamoDB.DocumentClient();
var table = "dummy";
var year = 2015;
var title = "The Big New Movie";
var params = {
TableName: table,
Item: {
"userid": "manafcj",
"year": year,
"title": title,
"test1": [645645, 7988],
"info": {
"plot": "Nothing …Run Code Online (Sandbox Code Playgroud) caching amazon-web-services amazon-elasticache amazon-vpc aws-lambda
根据Amazon Kinesis Streams 文档,可以多次传送记录.
确保仅处理每个记录的唯一方法是将它们临时存储在支持完整性检查的数据库中(例如DynamoDB,Elasticache或MySQL/PostgreSQL),或者只检查每个Kinesis分片的RecordId.
您是否知道更好/更有效的处理重复方法?
amazon-web-services amazon-elasticache amazon-dynamodb amazon-kinesis amazon-elasticsearch
redis ×4
amazon-ec2 ×2
aws-lambda ×2
caching ×2
php ×2
amazon-vpc ×1
c# ×1
cakephp ×1
memcached ×1
node.js ×1
session ×1
signalr ×1