草庐IT

Geo-redis

全部标签

相同变量的 Redis 复制

假设我有一个在Master中经常更改的变量setfoo1setfoo5setfoo4setfoo8setfoo4setfoo10setfoo7...如果网络出现故障,并且执行了更多类似的命令,当网络出现时,副本是否会被所有这些命令淹没,或者它是否只会收到每个不同变量的最后一个命令?提前致谢 最佳答案 当您使用Redis复制时,它允许从Redis实例成为主实例的精确副本。根据Redis文档,主要有3种机制:Master向slave发送命令流,以在master端复制数据集。当链接(主从之间)断开时,由于网络问题或因为在主从中检测到超时,

multithreading - Redis是单线程的,那么它是如何进行并发I/O的呢?

为了掌握Redis的一些基础知识,我遇到了一个有趣的blogpost.作者说:Redisissingle-threadedwithepoll/kqueueandscaleindefinitelyintermsofI/Oconcurrency.我肯定误解了整个线程的事情,因为我觉得这个说法令人费解。如果一个程序是单线程的,它如何同时做任何事情?如果服务器无论如何都是单线程的,为什么Redis操作是原子的这么好?有人可以解释一下这个问题吗? 最佳答案 好吧,这取决于您如何定义并发。在服务器端软件中,并发和并行通常被认为是不同的概念。在服

performance - 如何在读取哈希键时避免多次调用 redis

我正在将hashmap缓存到redis并按以下方式读取特定的hashkey:varhashValue=redis.HashGet(rediskey,hashkey)//RedisCall#1if(hashValue==null&&!redis.KeyExist(rediskey))//RedisCall#2{//loadfromsqlandcacheittoredis}else{returnhashValue;}我正在努力避免必须对Redis进行2次调用。请就如何解决这个问题提出建议,并在一次redis调用中完成。 最佳答案 您可以

redis - redis 中的 REST 服务

我是Redis的新手。试图找出我们是否可以为redis缓存元素构建一个RESTapi,以便它们可以被不同的客户端(节点、c#等)使用。是否可以这样做?如果是这样,我可以获得一些指导吗? 最佳答案 您可以使用webdis这将为您提供面向休息的客户端,它将围绕Redis。由于它是面向REST的,因此您可以通过以不同语言编写的所有其他微服务连接专业。它支持主要功能。 关于redis-redis中的REST服务,我们在StackOverflow上找到一个类似的问题:

redis - 我可以发布和订阅的 channel 的最大限制是多少?

我有一个要求,我想将数据发布到超过100,000个channel,订阅者将订阅他们想要的任何channel。所以我想知道Redis上可用的channel数量是否有硬性限制?如果我想通过所有channel和channel订阅者对Redis的性能进行基准测试,有没有我可以使用的可用工具? 最佳答案 SoIwanttoknowisthereahardlimittothenumberofchannelsthatcanbeavailableonRedis?在实践中,没有限制。您可以拥有尽可能多的channel,直到内存已满。

redis - 如何清除redis中的SLOWLOG?

如何清除redisSLOWLOG?#Serverredis_version:3.0.6redis_git_sha1:00000000redis_git_dirty:0redis_build_id:f62ea9ec3712ae8dredis_mode:standaloneos:Linux2.6.32-696.18.7.el6.x86_64x86_64arch_bits:64multiplexing_api:epollgcc_version:4.4.7process_id:1489run_id:05da042dddac2ef593eb8f2954ff7a93185797f7tcp_port

python - 一个文件启动所有服务... mongodb、redis、node、angular 和 python

好吧,我的问题是。如何创建一个可以启动nodeangular、pythonmain_worker.py、MongoDB和redis的文件?我真的不知道从哪里开始。我只想启动我的web程序而不打开7个控制台来启动每个服务,如pythonworkerangularNode和数据库。 最佳答案 我知道angular和MongoDB其他人不知道,这对你有帮助吗?尝试以下方法,但你需要一个控制台"scripts":{"dev":"concurrently\"mongod\"\"ngserve--proxy-configproxy.conf.j

redis - 如何将数据分布到redis集群的多个节点?

我有大量不同类型的键值对存储在Redis缓存中。目前我使用单个Redis节点。当我的应用程序服务器启动时,它会批量读取大量此类数据(使用mget)以将其缓存在内存中。为了进一步扩展Redis,我想建立一个集群。我知道在集群模式下,如果key存储在不同的插槽中,我将无法使用mget或mset。如何将数据分发到不同的节点/插槽,并且仍然能够批量读取/写入? 最佳答案 它在redis客户端库中处理。您需要以您选择的语言查找具有此功能的库是否存在。例如,如果您使用的是golang-根据文档,redis-go-cluster提供了此功能。ht

redis - 如何重新连接Redis集群节点?

我有一个包含6个节点的Redis集群,作为有状态集在我的Kubernetes集群中运行。由于它是用于测试而不是生产,所有的Redis节点都在同一台机器上。当然,机器出了故障,Redis的所有节点都立即崩溃了。当机器恢复正常时,pods被重新创建并被赋予不同的集群ip,因此它们无法相互重新连接。我需要为这样的灾难案例找到解决方案。假设所有节点都重新分配了不同的ip,我如何配置节点以获取其他ip?slaves很容易用CLUSTERRESET命令重置,但是masters包含不应该被删除的槽和数据。我应该手动重写nodes.conf吗?恐怕这会让事情变得更糟?我有已知的方法来处理它吗?谢谢!

spring-boot - 使用 spring boot 连接被拒绝的 redis master slave

我在端口3824(主)和3825(从)上设置了一个主从。但是,当我关闭master时,读取操作给出了连接被拒绝的异常。下面是我的配置。我怎么能保证即使我杀了master,我仍然在从slave读取。我哪里错了。@BeanpublicRedisConnectionFactoryredisFactory(){LettuceClientConfigurationconfig=LettuceClientConfiguration.builder().readFrom(ReadFrom.SLAVE_PREFERRED).buld();RedisStandaloneConfigurationserv