我正在使用这个
redisManager.redisClient.keys('*example*', function (err, keys) {
})
Run Code Online (Sandbox Code Playgroud)
但它只从一个redis集群中提供密钥.如何从所有群集中获取密钥?
我有几个关于使用StackExchange.Redis中的事务的问题:
{1}
hashtag,第二个命令的密钥有{2}
hashtag.Execute()
/ ExecuteAsync()
返回false
?只有在没有达到设定的条件时?false
如果没有设定条件,它会返回吗?Execute()
/ ExecuteAsync()
throw还是只返回false
?我是否还要检查命令的任务(假设命令完全正确并且通常不会抛出)或者它们将被取消?不幸的是,文档没有详细解释#2和#3.
查看redis集群的奇怪行为,它在大负载下运行完全正常,并且在低负载下以50%的超时速率和不稳定的响应时间开始运行.
我们在低负荷期间每天都有相同的模式.
什么想法会导致这种奇怪的模式?也许这个RedisCluster在低负载时间开始做一些维护工作?像插槽重新平衡.请推荐任何设置或方面进行检查.
版本:Redis 2.0.7,Jedis 2.8.1
配置:3个物理节点,9个主进程和18个从属.
JedisCluster Timeout = 5ms.
使用setex加载是100%写入.
此图表适用于JedisCluster响应时间,而不是实际的RedisCluster时间.这里的"设置"行实际上是成功设置,而不是总计数.
我正在尝试提高将数据写入redis集群的性能。我们计划从 redi-sentinel 迁移到集群模式以实现可扩展性。
但是,与redis-sentinel相比,写操作的性能要差很多。我们在redis-sentinel中利用了管道,但集群模式不支持管道。
因此,我正在考虑将前往同一节点的所有密钥分组,并使用管道将批次发送到该特定节点。
所以,我想知道如何知道/计算(在写入集群之前)特定密钥将写入哪个节点/插槽?
我创建了一个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,论坛答案.
我在 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-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) 问候溢出者,
在Redis的标记/集群设置中,我们是否可以使用带有从站总数的WAIT命令来确保Redis服务器之间的一致性?为什么不?
亲切的问候
我如何告诉 StackExchange.Redis (v1.0.481) 它即将连接到 Redis 集群(v3.2.6,以防万一),而不仅仅是一个独立/复制的实例?例如,当我使用 redis-cli 时,我必须传递一个 -c 标志以使其能够识别集群。StackExchange.Redis 连接字符串中是否有等效标志?
我搜索并遇到了几个包含多个逗号分隔的 host:port 参数的连接字符串示例,但没有任何内容明确使 StackExchange.Redis 集群感知。
谢谢。
我正在尝试设置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 ×10
redis-cluster ×10
jedis ×3
c# ×2
.net ×1
apache-storm ×1
consistency ×1
java ×1
kubernetes ×1
node.js ×1
performance ×1
redis-cli ×1