草庐IT

集群NoSQL

全部标签

redis - 如何在硬故障的情况下恢复redis集群中特定节点的哈希槽?

所以我正在测试redis集群。我有一个包含3个主站和3个从站的设置。现在,如果一个节点面临硬故障(主从都宕机),集群仍然可以正常工作,除了故障节点提供的哈希槽。现在,在测试这种情况时,我看到对这些哈希槽服务的键进行的读/写操作失败并出现异常,这很好(顺便说一句,我正在使用jedis)。但是,如果我使用redis集群作为缓存,我希望这些哈希槽由其他节点提供服务。redis-trib实用程序中似乎没有此功能。我无法重新分片集群以移动这些哈希槽,因为./redis-trib.rbreshard失败并显示[ERR]并非所有#{ClusterHashSlots}槽都被节点覆盖。。我也无法从集群中

node.js - 在nodejs中通过键数组从redis集群获取值

我正在尝试通过nodejs中的redis集群中的键数组获取值,它返回错误:“管道中的所有键都应该属于同一个槽”这是代码:privateGETALL_P(keys:string[],cb:any){varpipeline=this.client.pipeline();keys.forEach(function(key:string,index:Number){pipeline.get(key);});pipeline.exec(function(err:any,result:any){cb(err,result);});}我搜索了一下,有人说:它不适用于集群。有什么办法吗?

node.js - 在nodejs中通过键数组从redis集群获取值

我正在尝试通过nodejs中的redis集群中的键数组获取值,它返回错误:“管道中的所有键都应该属于同一个槽”这是代码:privateGETALL_P(keys:string[],cb:any){varpipeline=this.client.pipeline();keys.forEach(function(key:string,index:Number){pipeline.get(key);});pipeline.exec(function(err:any,result:any){cb(err,result);});}我搜索了一下,有人说:它不适用于集群。有什么办法吗?

java - Spring Boot 的 Redis 集群配置

我要为我的springboot应用程序添加一个redis集群。我发现以下属性需要放在application.property文件下才能实现它。spring.redis.cluster.max-redirects=#Maximumnumberofredirectstofollowwhenexecutingcommandsacrossthecluster.spring.redis.cluster.nodes=#Comma-separatedlistof"host:port"pairstobootstrapfrom.什么是ma​​x-redirects,我应该设置什么值?此外,redis池与

java - Spring Boot 的 Redis 集群配置

我要为我的springboot应用程序添加一个redis集群。我发现以下属性需要放在application.property文件下才能实现它。spring.redis.cluster.max-redirects=#Maximumnumberofredirectstofollowwhenexecutingcommandsacrossthecluster.spring.redis.cluster.nodes=#Comma-separatedlistof"host:port"pairstobootstrapfrom.什么是ma​​x-redirects,我应该设置什么值?此外,redis池与

php - 使用 Redis 集群和事务

在使用Redis集群时出现以下错误:Cannotuse'MULTI'withredis-cluster.只需以下调用:Redis::multi();有没有办法在不使用事务的情况下确保跨集群的数据完整性,因为那是不可能的 最佳答案 Redis不支持事务,如果键位于不同的槽/节点上。如果您必须将数据存储在集群中,则必须确保与交易相关的所有key都存储在单个槽中。您可以使用hashtag这样做。然后您可以将持有插槽的节点作为单个Redis实例,并在该节点上运行事务。 关于php-使用Redis

php - 使用 Redis 集群和事务

在使用Redis集群时出现以下错误:Cannotuse'MULTI'withredis-cluster.只需以下调用:Redis::multi();有没有办法在不使用事务的情况下确保跨集群的数据完整性,因为那是不可能的 最佳答案 Redis不支持事务,如果键位于不同的槽/节点上。如果您必须将数据存储在集群中,则必须确保与交易相关的所有key都存储在单个槽中。您可以使用hashtag这样做。然后您可以将持有插槽的节点作为单个Redis实例,并在该节点上运行事务。 关于php-使用Redis

php - Kubernetes 集群中的 Laravel ENV 变量冲突

我遇到了一个非常具体的案例,将Laravel框架用作kubernetes集群的一部分。这些是必须知道的事实:我创建了一个用于缓存的Docker容器,名为redis我已经为名为application的应用程序创建了一个Docker容器这两者在Kubernetes集群中协同工作Kubernetes正在每个Docker容器中设置ENV变量。通常,一个名为{container-name}_PORT。因此,Kubernetes在我的application容器中创建了ENV变量REDIS_PORT,它被设置为类似这样的内容:tcp://{redis-container-ip}:{redis-con

php - Kubernetes 集群中的 Laravel ENV 变量冲突

我遇到了一个非常具体的案例,将Laravel框架用作kubernetes集群的一部分。这些是必须知道的事实:我创建了一个用于缓存的Docker容器,名为redis我已经为名为application的应用程序创建了一个Docker容器这两者在Kubernetes集群中协同工作Kubernetes正在每个Docker容器中设置ENV变量。通常,一个名为{container-name}_PORT。因此,Kubernetes在我的application容器中创建了ENV变量REDIS_PORT,它被设置为类似这样的内容:tcp://{redis-container-ip}:{redis-con

redis - Kubernetes - 无法从同一集群上的另一个 pod 连接到 redis pod

同一集群上的pod之间的连接失败。据我了解,默认情况下,pods暴露在yaml文件中指定的端口上。例如,我为redis配置了我的部署文件,如下所示:apiVersion:extensions/v1beta1kind:Deploymentmetadata:name:redislabels:app:myappspec:replicas:1template:metadata:labels:app:myappspec:containers:-env:-name:REDIS_PASSvalue:'**None**'image:tutum/redisports:-containerPort:637