我们有一个包含大量数据(超过 100GB)的 Redis 实例。我们还有一个包含 6 个节点的空 Redis 集群。将所有数据从独立实例移动到 Redis 集群并使其均匀分布的最佳方法是什么?
我们的应用程序使用 SignalR。我们需要支持负载均衡部署以实现高可用性。我们还使用集群 Redis 在我们的应用程序中进行缓存。
我们正在考虑使用与 SignalR 背板相同的 Redis 集群来扩展。
但是 GlobalHost.DependencyResolver.UseRedis() 不支持将多个服务器作为参数传递。
如果可能,请指导我们如何实现相同的目标?
.net redis signalr-backplane stackexchange.redis redis-cluster
我想通过集群教程中create-cluster提到的脚本在 Mac 上设置一个 redis 集群。我无法在 Mac 上找到 create-cluster 脚本。
我正在使用redis 3.2.0安装通过brewon Mac OS X 10.11.6 (15G31)。
有人可以让我知道create-cluster脚本在 Mac 中的位置吗?
在以下链接:
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)
我尝试了各种命令,找不到。
以何种方式,我可以查看某个分片/节点是否为主要/副本的详细信息
提前致谢
我正在尝试使用从单实例 Redis 服务器获取的 RDB 文件创建 Redis 集群。这是我尝试过的:
#! /usr/bin/env bash
for i in 6000 6001 6002 6003
do
redis-server --port $i --cluster-config-file "node-$i.cconf" --cluster-enabled yes --dir "$(pwd)" --dbfilename dump.rdb &
done
Run Code Online (Sandbox Code Playgroud)
该脚本启动 4 个启用集群的 Redis 进程。它还使用转储文件初始化每个节点。
然后我运行redis-trib.rb以便 4 个节点可以找到彼此:
redis-trib.rb create 127.0.0.1:6000 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
>>> Creating cluster
[ERR] Node 127.0.0.1:6060 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
Run Code Online (Sandbox Code Playgroud)
我还尝试了一种变体,其中仅使用 RDB 文件初始化第一个节点/进程,而其他节点/进程为空。我可以将 3 个空节点加入到一个集群中,但不能将预先填充数据的节点加入到集群中。 …
我有 1 个 VPC - 在 1 个 EC2 实例(亚马逊 ami )和 1 个 Redis(已启用集群模式)集群下,具有身份验证(密码)并且安全组对所有 IP:端口开放(仅用于测试目的) - 所以设置非常简单。
telnet 在我的 EC2 实例的端口 6379 上工作 - 配置端点 - Shard>eachNode EndPoint
无法使用 Redis CLI 连接到 Redis 服务器 - 无论端点是配置端点还是节点端点;使用 v.5.0.4 的 Redis CLI ;
请注意 - AWS ElastiCache Redis 集群(已禁用集群)或单服务器节点提供主端点,工作正常。仅当启用集群并获取 ConfigEndpoint/NodeEndPoints 时,才会出现问题。
配置端点:
[root@ip-xx-xx-xx-xx src]# ./redis-cli -h clustercfg.xxxx.xxxxx.use1.cache.amazonaws.com -p 6379
Run Code Online (Sandbox Code Playgroud)
节点端点:
[root@ip-xx-xx-xx-xx src]# ./redis-cli -h xxxx-0001-0-01.xxxx.xxxxx.use1.cache.amazonaws.com -p 6379
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!
谢谢
我正在尝试通过 python 修改大型 Redis 集群中的值StrictRedisCluster,并且我正在尝试并行迭代键。
到目前为止我已经尝试过
keys()超时的命令scan()/scan_iter()在单个线程中遍历值,这太慢了有没有办法在线程中按块进行扫描?也许扫描集群的每个节点,或者每个键空间?我注意到一个 CLI 命令GETKEYSINSLOT,但它在 python Redis 中不可用。
我所有的密钥都是字符串 UUID 格式
有大量用于连接到 Redis“服务器”但不连接到 Redis“集群”的示例和资源。
我目前拥有的是:
const redis = require("redis");
const client = redis.createClient({
port : 6379, // replace with your port
host : '10.0.0.100', // replace with your hostanme or IP address
password : 'Notforyou', // replace with your password
// optional, if using SSL
// use `fs.readFile[Sync]` or another method to bring these values in
tls : {
key : stringValueOfKeyFile,
cert : stringValueOfCertFile,
ca : [ stringValueOfCaCertFile ]
}
});
Run Code Online (Sandbox Code Playgroud)
但这是针对单个 Redis 服务器而不是集群。我将如何连接到我的集群?
我在3 台Linux 服务器(CentOS 7 )上使用 Redis 集群。我有标准配置,即6个节点、3个主实例和3个从实例(一主一从)分布在这3台Linux服务器上。我在我的 Web 应用程序中使用此设置来进行数据缓存、HTTP 响应缓存。我的目标是读取主要内容并写入辅助内容,即读取操作不应失败或延迟。
现在我想问一下,是否需要在3台Linux服务器之前配置任何负载均衡器,以便我的Web应用程序对Redis集群实例的请求可以正确分布在这些Redis服务器上?或者Redis集群本身能够处理负载分配吗?
如果是,请提及任何参考链接来配置相同的内容。我已检查官方文档 Redis Cluster但它没有指定有关负载均衡器设置的任何内容。
我有一个网络应用程序,我需要在其中实现缓存。我发现Redis缓存是开源的并且可以免费下载。但我还发现它的有效期为 15 天,超过此限制后我将无法更改任何配置。
虽然我只需要非常基本的键值对,但我根本不需要更改任何配置。那么,我可以将免费版本投入生产吗?否则会在后期出现问题?
redis-cluster ×10
redis ×9
.net ×1
caching ×1
node.js ×1
python ×1
redis-cli ×1
redis-server ×1