问题标签 [redis-cluster]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sails.js - 如何设置sails 应用程序连接到redis 集群?
我们能够设置我们的sails 应用程序以使用redis 作为我们的会话存储和套接字连接。但是我们不知道如何设置帆来连接到 redis 集群,有什么想法/例子吗?
为了更清楚一点,我们的sails 应用程序已经在使用redis,其配置类似于:
但是现在我们想将它设置为使用 redis 集群,它可能运行在不同的服务器和不同的端口上。
redis - 使用 spring-data-redis 1.7.0.M1 时如何配置 redis-cluster
我使用 spring-data-redis 版本 1.7.0.M1 和 jedis 版本 2.8.0 这是我的配置
并使用【redisTemplate.opsForValue().get("foo")】测试
抛出异常
使用 spring-data-redis 1.7.0.M1 时如何配置 redis-cluster?
redis - 使用 redis-trib.rb 创建集群时出现连接错误?
我的所有 Redis 服务器配置如下:
大师:192.168.0.106:7001、192.168.0.105.7001、192.168.0.112:7001
从机:192.168.0.106:7002、192.168.0.105:7002、192.168.0.122:7002
其中 192.168.0.106:7002 服务器是 192.168.0.106:7001 服务器的从属服务器,依此类推。我让所有服务器都在运行,并且可以对所有服务器执行 redis-cli。我可以看到 17001 和 17002 端口也打开了。但是当我运行时:
./redis-trib.rb 创建--replicas 1 192.168.0.106:7001 192.168.0.105:7001 192.168.0.112:7001 192.168.0.106:7002 192.168.0.105:7002 192.168.0.112:
我收到一个错误:
创建集群
[ERR] 抱歉,无法连接到节点 192.168.0.106:7001
当所有服务器都在工作并且它们的端口都打开时,我不知道如何解决这个问题?
一件事是我确实有主人用密码保护。也许 redis-trib.rb 无法处理受密码保护的服务器?
ycsb - 由于我们没有绑定redis集群,如何运行ycsb来测试redis集群?
我正在研究redis。我已经使用三个主节点构建了我的 Redis 集群,并且我还有另一个节点用于运行 ycsb。我遇到了与To start YCSB load with cluster enabled option for REDIS中所述相同的问题 。我尝试根据给出的答案编辑 RedisClient.java。但是我遇到了错误: import redis.clients.jedis.HostAndPort; 导入 redis.clients.jedis.JedisCluster;,因为这些包不存在。所以我的问题是在哪里可以找到像 redis.clients.jedis.JedisCluster 这样的包?有没有人成功编辑 RedisClient.java 以测试 redis 集群,或者我们有其他解决方案吗?谢谢!
redis - 一个redis集群的一台机器上应该运行多少个redis实例
Hola Redis 宇宙!!
我们计划有以下配置的redis集群。
- 一个由 5 个节点组成的 redis 集群。
- 每个节点有 8 个内核、64 GB RAM 和 100 GB SSD 驱动器。
- 每个主实例一个从属。
- 在所有实例上 15 分钟后只有 RDB 持久性(无 AOF)。
我们预计每秒会有大量的读取/写入次数,这个数字超过 20k+。
在每个节点上,我们计划有 n 个主节点和 n 个从节点(其他节点),考虑到 redis 的单线程特性,我们希望利用多核。一个节点上应该运行多少个 redis 实例(master 和 slave)?IE。我们应该使用什么作为 n 的值?(2主/2从或3主/3从)
我检查了在本地运行多个实例,并且在 RDB 保存过程中 CPU 使用率似乎猛增了很多。运行多个实例会增加问题,因为保存各种实例的时间会发生冲突。生产上会不会有问题?
谢谢
redis - Redis 密钥空间通知 - 订阅者数量与争用
我正在尝试使用 Redis 实现标记。这是它的样子:
我计划使用Redis Keyspace Notifications来防止过期的密钥永远留在我的标签集中(即使缓存中的每个项目都有默认的 TTL 集,我也不喜欢保留陈旧的数据)。
这些是我正在考虑的选项:
1) 订阅所有“过期”事件。
优点:
- 只有 1 个订阅者。
缺点:
- 由于并非所有项目都包含标签,因此我必须检查 mykey:tags ,如果存在则获取标签并从每个标签集中删除该项目。
- 这种方法的争用将随着存储中键的数量而增加。
2) 订阅那些只包含标签的键的所有事件。
优点:
- 将为仅带有标签的项目创建订阅。
缺点:
- 必须有与每个订阅者相关的开销。
- 根据商店中标记商品的数量,订阅者的数量可以快速增长。
问题:
- 我应该实施哪个选项?我应该关注 2) 的订阅者数量还是 1) 的争论更重要?我找不到关于这个主题的任何建议。
- 最终的目标是在 Redis 集群上实现这一点。这是否会给实施增加任何额外的关注?
更新1:
这是在我们的缓存上进行标记的通用实现。在这一点上,我不确定我们最终是如何使用它的。这更像是我正在研究的 PoC。一些数字试图回答评论中的一些问题:
- 数量:我们每天有数千万的独立访问者。但是,并非每个访问者的缓存中存储的所有项目都有标签。但这种情况不断变化。
- 标签:标签被管理。目前有几十个标签。我们正在考虑在未来支持自由文本标签。
- 我没有测试我在这里建议的两种方法中的任何一种。我希望其中一个选项太糟糕了,甚至不是一个选项:)
更新 2:
经过一些试验和错误以及更多的研究,我放弃了2)。redis 客户端和输出缓冲区都有限制,这使得这个选项不可行。您可以在此处和此处找到更多信息。我试过1),它工作得很好。我什至将密钥的到期时间设置为彼此相距 5ms,并且代码可以正确处理它。这可以是一个替代方案。
@thepirat000 建议的另一种选择。我将此答案标记为已接受的答案,但我还对他的建议进行了一些调整:我不想在每个标签操作的标签中进行维护,而是我可以随机确定何时进行。这是一个足够好的方法,它不使用 pub/sub 也不使用键空间通知。
redis - 如何使用 Sentinel 运行 redis 集群
由于扩展和高可用性通常是不同的概念(除非您选择负载平衡容错方案),我希望 Redis 能够同时支持这两者。但是据我了解,我们不能将 Redis 集群与 Sentinel 混合使用吗?如果是这样,我如何创建一个具有多个分区并且也由 Sentinel 管理的部署?是否有描述如何完成此操作的指南?
node.js - Redis命令获取Redis集群上的所有可用密钥?
我正在使用这个
但它只提供来自其中一个 redis 集群的密钥。如何从所有集群中获取密钥?
redis - Kubernetes 服务 Redis Sentinel 未始终如一地返回 Redis 主 IP 和端口
Kubernetes 服务Redis Sentinel 没有始终如一地返回 Redis 主 IP 和端口,并且所有 pod 都在 docker 容器中。我已经使用了https://github.com/kubernetes/kubernetes/tree/master/examples/redis和 https://github.com/helm/helm - redis 集群
当我连接到 Kubernetes 服务(10.3.251.152、26379/TCP)时,它应该确定 Redis Sentinel 主机(ip:'10.0.0.68',端口:'6379'),然后与它建立连接。但有时,Kubernetes 服务返回 (ip: '10.0.0.68', port: '6379') 和其他时候,它返回 Kubernetes 服务 (10.3.251.152 , 26379/TCP) 作为哨兵主 IP。我们可以在程序 Log to connect with sentinel master中看到这一点
在这两种情况下(kubernetes sentinel example,helm.sh's redis cluster)都会发生这种不一致。
您可以在此处查看服务和 pod 详细信息..
有关主/从/哨兵详细信息的更多详细信息
如何进行故障排除?