我们正在使用Elasticache(Redis)来为我们的云平台实现缓存层。它有一个mongodb后端。我们使用Node.js和Java在不同的平台组件中访问这些数据。
下面给出了Node.js示例代码
var redisClient = require('redis').createClient(config.aws.redis.port, config.aws.redis.endpoint, {no_ready_check: true});
var redisKey="urls_"+url;
redisClient.get(redisKey, function (redisErr, reply) {});
在redis缓存中,我们缓存不同类别的数据。假设X,Y,Z。目前我们把它们存储在单一的红节点中。我们使用命名空间前缀来划分数据。
前任,
key ="X_"+url
key ="Y_"+money
key ="Z_"+length
但是我读了这篇文章,它说最好避免名字空间。http://www.mikeperham.com/2015/09/24/storing-data-with-redis/
那么,我们用例的最佳解决方案是什么呢?
每个不同的数据分区都有不同的redis节点,
X型数据将在A中缓存,节点Y型数据将缓存在B中,节点Z型数据将被缓存在C redis节点中
在单个redis节点中使用多个redis dbs?
X型数据将缓存在A节点的第0 DB中,Y型数据将被缓存在A节点的第1 DB中,Z型数据将被缓存在A redis节点的第2 DB中。
发布于 2017-12-14 21:20:36
对于elasticache,通常最好将每组数据存储在自己的集群中。
当然,总是有例外的,您应该在您独特的上下文中考虑这些问题。
https://stackoverflow.com/questions/47131528
复制相似问题