标签: redis-cluster

Redis命令获取Redis群集上的所有可用密钥?

我正在使用这个

redisManager.redisClient.keys('*example*', function (err, keys) {
})
Run Code Online (Sandbox Code Playgroud)

但它只从一个redis集群中提供密钥.如何从所有群集中获取密钥?

redis node.js redis-cluster

17
推荐指数
1
解决办法
2744
查看次数

StackExchange.Redis:关于交易的几个问题

我有几个关于使用StackExchange.Redis中的事务的问题:

  1. 是否允许在事务中执行可能针对集群环境中不同节点的命令?比方说,第一个命令的密钥有{1}hashtag,第二个命令的密钥有{2}hashtag.
  2. 交易什么时候Execute()/ ExecuteAsync()返回false?只有在没有达到设定的条件时?false如果没有设定条件,它会返回吗?
  3. 如果发生某些网络或内部Redis错误,是Execute()/ ExecuteAsync()throw还是只返回false?我是否还要检查命令的任务(假设命令完全正确并且通常不会抛出)或者它们将被取消?

不幸的是,文档没有详细解释#2和#3.

.net c# redis stackexchange.redis redis-cluster

10
推荐指数
1
解决办法
1120
查看次数

Redis群集性能 - 低负载时的高超时率

查看redis集群的奇怪行为,它在大负载下运行完全正常,并且在低负载下以50%的超时速率和不稳定的响应时间开始运行.

我们在低负荷期间每天​​都有相同的模式.

什么想法会导致这种奇怪的模式?也许这个RedisCluster在低负载时间开始做一些维护工作?像插槽重新平衡.请推荐任何设置或方面进行检查.

版本:Redis 2.0.7,Jedis 2.8.1

配置:3个物理节点,9个主进程和18个从属.

JedisCluster Timeout = 5ms.

使用setex加载是100%写入.

JedisCluster响应时间 JedisCluster超时率

此图表适用于JedisCluster响应时间,而不是实际的RedisCluster时间.这里的"设置"行实际上是成功设置,而不是总计数.

performance redis jedis redis-cluster

9
推荐指数
1
解决办法
650
查看次数

使用jedis如何写入redis集群中的特定槽/节点

我正在尝试提高将数据写入redis集群的性能。我们计划从 redi-sentinel 迁移到集群模式以实现可扩展性。

但是,与redis-sentinel相比,写操作的性能要差很多。我们在redis-sentinel中利用了管道,但集群模式不支持管道。

因此,我正在考虑将前往同一节点的所有密钥分组,并使用管道将批次发送到该特定节点。

所以,我想知道如何知道/计算(在写入集群之前)特定密钥将写入哪个节点/插槽?

redis jedis redis-sentinel redis-cluster

9
推荐指数
1
解决办法
4985
查看次数

在Redis重新启动时自动将Storm拓扑重新连接到Redis群集

我创建了一个Storm拓扑,它使用Jedis库连接到Redis Cluster.Storm组件总是希望Redis启动并运行,然后才连接到Redis并订阅事件.目前我们使用Redis的pub-sub策略.

下面是代码示例,它解释了Storm中为Redis提供的Jedis连接.

try {
    jedis.psubscribe(listener, pattern);
} catch(Exception ex) {
    //catch statement here.
} finally {
    pool.returnResource(jedis);
}

....

pool = new JedisPool(new JedisPoolConfig(), host, port); //redis host port

ListenerThread listener = new ListenerThread(queue, pool, pattern);
listener.start();
Run Code Online (Sandbox Code Playgroud)

预期的行为

一旦Redis去世并重新上线,预计Storm将确定Redis的状态.如果Redis死机并上线,则无需重启.

实际行为

一旦Redis因任何原因重新启动,我总是必须重新启动Storm拓扑,然后才开始收听Redis.

Redis重启后,如何让Storm监听并重新连接到Redis?任何指导将不胜感激,即.docs,论坛答案.

java redis jedis apache-storm redis-cluster

9
推荐指数
1
解决办法
276
查看次数

redis-cli 重定向到 127.0.0.1

我在 PC1 上启动了 Redis 集群,然后在 PC2 上连接它。当需要重定向到另一个集群节点时,它显示Redirected to slot [7785] located at 127.0.0.1,但应该显示Redirected to slot [7785] located at [IP of PC1, like 192.168.1.20],然后显示错误。怎么了?我能做什么?

输出:

[admin@localhost ~]$ redis-cli -c -h 192.168.1.20 -p 30001
192.168.1.20:30001> get foo
-> Redirected to slot [12182] located at 127.0.0.1:30003
Could not connect to Redis at 127.0.0.1:30003: Connection refused
Could not connect to Redis at 127.0.0.1:30003: Connection refused
not connected>
Run Code Online (Sandbox Code Playgroud)

的输出redis-cli -h 192.168.1.20 -p 30001 cluster nodes

5f6d6f1319318233917aba92b6ab0e244b3260d7 127.0.0.1:30004 slave 4c7b046ecaeb2dc689cbad21ee3466fb43b48fb9 …
Run Code Online (Sandbox Code Playgroud)

redis redis-cli redis-cluster

8
推荐指数
1
解决办法
4697
查看次数

获取Redis集群中的所有key

我正在使用 Redis 集群版本redis-5.0.5。我想查看 Redis 集群中存在的所有密钥。我知道我们KEYS *用来获取所有密钥的独立版本。

查看Redis集群中所有键的方法是什么?

$ redis-cli -h hostname -p 90001 -c 
hostname:90001> KEYS *
(empty list or set)

// I have data on my cluster 
Run Code Online (Sandbox Code Playgroud)

command-line-interface redis redis-cluster

8
推荐指数
1
解决办法
8336
查看次数

WAIT命令可以在Redis中提供强大的一致性吗?

问候溢出者,

在Redis的标记/集群设置中,我们是否可以使用带有从站总数的WAIT命令来确保Redis服务器之间的一致性?为什么不?

亲切的问候

consistency redis redis-sentinel redis-cluster

7
推荐指数
1
解决办法
1632
查看次数

将 StackExchange.Redis 客户端与 Redis 集群一起使用

我如何告诉 StackExchange.Redis (v1.0.481) 它即将连接到 Redis 集群(v3.2.6,以防万一),而不仅仅是一个独立/复制的实例?例如,当我使用 redis-cli 时,我必须传递一个 -c 标志以使其能够识别集群。StackExchange.Redis 连接字符串中是否有等效标志?

我搜索并遇到了几个包含多个逗号分隔的 host:port 参数的连接字符串示例,但没有任何内容明确使 StackExchange.Redis 集群感知。

谢谢。

c# redis stackexchange.redis redis-cluster

7
推荐指数
1
解决办法
8967
查看次数

Kubernetes中的Redis集群不写入node.conf文件

我正在尝试设置Redis集群,并且在这里遵循了此指南:https//rancher.com/blog/2019/deploying-redis-cluster/

基本上,我将创建一个具有副本6的StatefulSet,以便可以拥有3个主节点和3个从属节点。在所有节点启动之后,我创建了集群,并且一切正常……但是,如果查看每个redis节点的文件“ nodes.conf”(应该保存所有节点的配置),可以看到它是空的。这是一个问题,因为每当重新启动redis节点时,它都会在该文件中搜索该节点的配置以更新其自身的IP地址,并与其他节点进行MEET,但是他什么也没找到,因此基本上可以在该节点上启动新集群他自己的,带有新的ID。

我的存储是一个NFS连接的共享文件夹。负责存储访问的YAML是这样的:

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: nfs-provisioner-raid5
spec:
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: nfs-provisioner-raid5
    spec:
      serviceAccountName: nfs-provisioner-raid5
      containers:
        - name: nfs-provisioner-raid5
          image: quay.io/external_storage/nfs-client-provisioner:latest
          volumeMounts:
            - name: nfs-raid5-root
              mountPath: /persistentvolumes
          env:
            - name: PROVISIONER_NAME
              value: 'nfs.raid5'
            - name: NFS_SERVER
              value: 10.29.10.100
            - name: NFS_PATH
              value: /raid5
      volumes:
        - name: nfs-raid5-root
          nfs:
            server: 10.29.10.100
            path: /raid5
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: nfs-provisioner-raid5
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: …
Run Code Online (Sandbox Code Playgroud)

redis kubernetes redis-cluster

7
推荐指数
1
解决办法
218
查看次数