草庐IT

pub-cache

全部标签

caching - 在不使用持久性的情况下,Redis 在多个主服务器上进行分片会变得更快吗?

我对独立(单线程)Redis的测试表明,来自多个并行客户端的负载可以将RedisCPU使用率提高到100%(在我的内存缓存用例中)。如果启用了持久性,以集群模式启动它并将内容分片到多个母版是加速它的一种可能方法。我有一个没有持久化的配置(关闭了RDB和AOF)。启动多个主控是否有助于提高性能(仍然使用相同的累积内存量)? 最佳答案 Redis是单线程的,所以单机实例的性能受限于单个CPU核心的处理能力和单机的网络带宽。然而,Redis非常非常快。所以通常瓶颈是网络带宽,除非你运行大量缓慢的命令/lua脚本。如果你在多台机器上部署Re

redis - 使用 redis pub-sub 进行 key 过期

我有一个要求,我要在一段时间内将我的key推送到redis。还有一个用于监听key过期事件的订阅者,然后回调到我的其他系统,该系统可以对其执行一些业务规则。相信这个用例的redispub-sub是一个好的设计吗?键的平均TTL将在~15分钟范围内。使用其他设计将使我拥有一个调度程序/cron(每分钟)或一些轮询系统。 最佳答案 是的,我一直在将Redis发布/订阅用于生产中完全相同的用例,并且一直运行良好,没有任何问题。 关于redis-使用redispub-sub进行key过期,我们在

caching - 从 block 中的 redis 缓存中清除数据

我需要从Redis缓存中删除一个池。但是,这个池可能有数百万个key。我正在使用以下代码从缓存中删除keyStringregex="*."+poolname+".*";Setrkeys=jedis.keys(regex);for(Stringkey:rkeys){LOGGER.info("key===>"+key);jedis.del(key);}恐怕万一有百万行,redis服务器可能会崩溃。有什么办法可以告诉redis只选择100行并及时删除。有点像while(true){//sleepfor1minute//get100rowsfromcacheif(keys.isEmpty())

python - 超时不工作 django-redis-cache

我有设置缓存,但我的TIMEOUT不工作。我的缓存从不更新。CACHES={'default':{'BACKEND':'redis_cache.cache.RedisCache','LOCATION':'localhost:6379','TIMEOUT':5,'OPTIONS':{"SOCKET_CONNECT_TIMEOUT":5,#inseconds"SOCKET_TIMEOUT":5,#inseconds'DB':1,'PASSWORD':'','PARSER_CLASS':'redis.connection.HiredisParser','PICKLE_VERSION':2,}

ruby-on-rails - 如何在 rails 中处理 redis pub/sub

我有一个Rails应用程序,它通过Redis与socket.io应用程序对话。我可以在Rails应用程序上创建一条消息,然后socket.io广播它,但我不知道如何处理传入的消息(即我希望服务始终监听Redis并处理传入的消息)。你能告诉我如何实现这一目标吗? 最佳答案 您可以在此处使用sidekiqgem,它默认使用redis,因此每当您通过sidekiq提供的perform_later方法将作业排入redis时。只要有工作人员空闲,Sidekiq工作人员就会运行它。对于标题中提到的发布/订阅,您可以使用Rails提供的Actio

multithreading - 执行 pub sub 时 Redis 崩溃

当我从jedis执行函数getResource时,它因以下问题而崩溃:[17:04:58][PaperWatchdogThread/ERROR]:CurrentThread:Serverthread[17:04:58][PaperWatchdogThread/ERROR]:PID:18|Suspended:false|Native:false|State:WAITING[17:04:58][PaperWatchdogThread/ERROR]:Threadiswaitingonmonitor(s):[17:04:58][PaperWatchdogThread/ERROR]:Locked

caching - 看不到 Redis 脚本缓存的内容

如何通过SHA找到Redis脚本?我知道我可以使用EVALSHA通过其SHA运行脚本,或者查找它是否使用SCRIPTEXISTS进行缓存,但我在慢速日志中找到了SHA,但我不知道想要运行它,只需看看它是哪个脚本,这样我就可以弄清楚为什么它很慢。我如何访问Redis脚本缓存以保存脚本及其SHA? 最佳答案 Redis中不存在这种类型的功能,直到并包括v4。相反,您可以做的是收集所有脚本并计算它们的SHA1总和(不必在Redis中)。然后,查明罪魁祸首应该是微不足道的。 关于caching-

java - Spring Redis 问题 : GetAllCacheNames from redis cache is not working with RedisCacheManager

您好,下面是我的redis缓存配置,我正在尝试使用以下方式获取存储在redis服务器上的所有缓存名称:redisCacheManager.getCacheNames()但它没有给我redis服务器中存在的缓存名称。我使用Cachable注释为cacheName添加前缀:@Cacheable("cacheName")我在这里有2个问题?1)为什么我无法获取存储在redis服务器中的缓存名称。2)我不想为所有前缀编写单独的方法,如何动态创建前缀cacheName?@BeanJedisConnectionFactoryjedisConnectionFactory(){JedisConnect

caching - Ehcahe 版本 3.X 中对 JMS/RMI 复制的支持停止了吗?

我想将Ehcache版本从2.10.x升级到3.x,但我在版本3中找不到对RMI/JMS复制(RMICacheReplicatorFactory和JMSCacheReplicatorFactory)的支持。如果Ehcache3.x不支持RMI/JMS缓存复制什么是最好的选择(hazelcast/memcached/redis) 最佳答案 该支持确实已停止,主要是因为它提供了零排序和一致性保证。Ehcache的替代方案是Terracottaclustering.它提供了一个适当的模型,可以保证顺序并且可以稍微调整一致性。至于它是否适合

caching - Redis 哨兵故障转移不起作用

我已经在同一台机器(ubuntuVM)上设置了Redissentinel,在端口7000、7001和7002(一个主服务器和两个从服务器)上设置了三个服务器,在端口26379、26380和26381上设置了三个sentinel。当我启动它们时,根据日志,一切看起来都很好,当我对哨兵运行INFO命令时,看起来也很健康。但是当我放下主机时(通过Ctrl+C或redis-cliSLEEP命令使其停止工作),没有一个从属实例被引入为新的主机并且哨兵尝试提名并连接到已经死掉的主机实例!我的配置如下:大师:port7000protected-modeno从#1:port7001slaveof10.