ElasticCache 为您提供了一个配置端点和一个单独的节点端点。
两者之间的真正区别是什么?你会使用一个和另一个的用例吗?
我假设配置端点可以指向一组节点端点,但我不太明白。一个用例示例真的可以帮助我理解您何时想要以不同的方式使用 2。
我正在寻找一种在 Elastic Beanstalk 环境中运行 Celery 的直接方法。这是否存在,还是我需要改用 SQS?
我试过在 .config 文件中放一行,但没有很好的结果。这是我的 .config 文件:
container_commands:
01_syncdb:
command: "django-admin.py syncdb --noinput"
leader_only: true
02_collectstatic:
command: "./manage.py collectstatic --noinput"
03_migrate:
command: "./manage.py migrate --noinput"
04_start_celery:
command: "./manage.py celery worker &"
Run Code Online (Sandbox Code Playgroud)
当我通过 SSH 连接到 EC2 服务器并运行时,ps -ef | grep celery它显示 Celery 没有运行。
任何帮助表示赞赏。谢谢!
django amazon-web-services celery amazon-elasticache amazon-elastic-beanstalk
有没有办法从 AWS 网络外部连接托管在 AWS 上的 Redis 实例?我有一个在 AWS 上运行的基于 Windows 的 EC2 实例,另一个是 Redis 缓存节点。
我知道有人问过这个问题,但答案是在基于 Linux 的系统的上下文中,但我的是 AWS 上基于 Windows 的服务器。我没有足够的分数来对现有问题发表评论。这是 Stack Overflow 上现有问题的链接:
正如标题所暗示的,我正在努力通过我的 EC2 实例连接到我的 elasticache 实例。我有一个连接到我的 EC2 实例中的 redis 的 orm 只是在我的日志上失败了,所以我进入我的 EC2 实例尝试手动连接到 redis 实例并超时:
Could not connect to Redis at <redis uri>: Connection timed out
它们位于不同的 VPC(elasticache 实例和 EC2 实例)中,但在我的 elasticache 实例的安全组中,我在端口 6379 处有来自任何来源的自定义 TCP 入站规则。
呸。
我一直在使用 memcached,我从 PHP 5.4 升级到 5.6,现在它无法连接和存储。
我有:
ini_set('session.save_handler', 'memcached');
ini_set('session.save_path', 'serverAddress:11211');
session_start();
Run Code Online (Sandbox Code Playgroud)
我也在服务器地址之前尝试过 tcp:// ,但没有运气。
在错误日志中,我收到以下错误:
我想在 PHP 的版本中发生了一些变化。任何帮助表示赞赏,谢谢!
注意:我将 Amazon Elastic Beanstalk 用于 Web 服务器,将 ElastiCache 用于 memcached
我试过的
使用了一个配置文件:
files:
"/etc/php.d/setup.ini":
mode: "000644"
owner: root
group: root
source: https://s3.amazonaws.com/path/to/file.ini
Run Code Online (Sandbox Code Playgroud)ini文件里面是:
[php]
session.save_handler = memcached
session.save_path = 'memcached.server.path.cache.amazonaws.com:11211'
Run Code Online (Sandbox Code Playgroud)
session_write_close()我正在尝试编写一个使用 redis(在 amazon elasticcache 上)的 AWS Lambda 函数。问题 – 我无法连接到 redis。我使用这样的代码
'use strict'
function handler (data, context, cb) {
const redis = require("redis")
console.log('before client initialization')
const client = redis.createClient({
url: 'redis://propper-url-cache.some.0001.euw1.cache.amazonaws.com:6379',
retry_strategy: function(options) {
console.log(options)
if (options.total_retry_time > 1000) {
throw new Error('can`t connect to redis')
}
}
})
console.log('after client initialization')
client.on("error", function (err) {
console.log('in error')
cb({error: err})
});
client.get("counter", function (err, counter) {
console.log('counter', counter)
if(_.isNull(counter)) {
counter = 0
}
client.set('counter', counter + 1, function(err) …Run Code Online (Sandbox Code Playgroud) amazon-web-services redis node.js amazon-elasticache aws-lambda
在以下链接:
http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/ClientConfig.ReplicationGroup.html
存在以下内容:
REPLICATIONGROUP my-repgroup My replication group available
CLUSTERID my-redis-primary
CLUSTERID my-replica-1
NODEGROUP 0001 my-repgroup.f310xz.ng.0001.cache.amazonaws.com 6379 available
NODEGROUPMEMBER my-redis-primary 0001 my-redis-primary.f310xz.0001.cache.amazonaws.com 6379 us-west-2a primary
NODEGROUPMEMBER my-replica-1 0001 my-replica-1.f310xz.0001.cache.amazonaws.com 6379 us-west-2b replica
Connecting to Clusters in a Replication Group (ElastiCache API)
Run Code Online (Sandbox Code Playgroud)
在上面,最右边
有'primary'和'replica'
截至今天,在 aws 控制台中,
当我发出“describe-replication-groups”命令时,
我看不到“主要”和“副本”
相反,我看到如下内容:
"NodeGroupMembers": [
{
"PreferredAvailabilityZone": "us-west-2b",
"CacheNodeId": "0001",
"CacheClusterId": "ec-redis-cluster1-0001-001"
},
{
"PreferredAvailabilityZone": "us-west-2b",
"CacheNodeId": "0001",
"CacheClusterId": "ec-redis-cluster1-0001-002"
},
{
"PreferredAvailabilityZone": "us-west-2b",
"CacheNodeId": "0001",
"CacheClusterId": "ec-redis-cluster1-0001-003"
}
]
Run Code Online (Sandbox Code Playgroud)
我尝试了各种命令,找不到。
以何种方式,我可以查看某个分片/节点是否为主要/副本的详细信息
提前致谢
我们在 AWS 环境中使用 Redisson 3.6.1 版,在具有 2 个节点的复制模式下设置 ElastiCache。我们的主要操作是针对 LRU 有界RMapCache(https://github.com/redisson/redisson/wiki/7.-distributed-collections#714-lru-bounded-map),我们只是get和put数据(设置了maxSize500K 记录)。
但是,即使在非常低的负载下,我们也会遇到一系列org.redisson.client.RedisTimeoutExceptionwith 消息。而且,这种现象似乎主要发生在 AWS ElastiCache 的主节点上。在我们与 Redis (通过 Redisson) 通信的一些服务上,这似乎并不是真正的问题,尽管这种超时也会发生,但频率较低。Unable to send command: ....
Redis ElastiCache 集群似乎完全没有压力。CPU的利用率通常为1-2%。我们减少了retryInterval和的数量,retryAttempts以便在这种情况下快速失败并防止我们的服务线程长时间保持阻塞状态。然而,在那个低负载下(大约 100 redisson req/s),有人会期望根本不会遇到这样的问题。
Lettuce 客户端在 Redis 集群上的表现很差,与单主 Redis 相比,慢了 10 倍。当对客户端的并发请求数大约为 100 时,我开始注意到这个问题。当观察到这个问题时,Redis 实例有多达 300 个打开的连接,并且每分钟有多达 80k 个新连接。在性能下降期间使用 cli 客户端从 Redis 集群读取密钥时,它工作正常,因此看起来像是客户端问题。
堆栈:Spring Boot 1.5.3 Spring Data Redis 1.5.3 Lettuce 4.4.5 Redis 4.0.10
我已经创建了 AWS ElastiCache redis 服务器并配置了 EC2 实例,但不知何故我无法通过 EC2 实例连接 Redis。
我也分配了相同的安全组。
这是我的配置
我面临的错误是 Redis::CannotConnectError: Error connecting to Redis on some-prod.dhgdjw.0001.usw2.cache.amazonaws.com:6379 (Redis::TimeoutError)
任何帮助将不胜感激。
redis ×6
amazon-ec2 ×1
aws-lambda ×1
celery ×1
django ×1
lettuce ×1
memcached ×1
node.js ×1
php ×1
php-5.6 ×1
redisson ×1
session ×1
spring-boot ×1
tcp ×1