草庐IT

pub-cache

全部标签

Redis Pub-Sub 或 Socket.IO 的广播

我看到了这个片段:在服务器上io.sockets.on('connection',function(socket){constsubscribe=redis.createClient();constpublish=redis.createClient();socket.on('publish',function(channel,data){publish.publish(channel,data);});socket.on('psubscribe',function(channel){subscribe.psubscribe(channel);});subscribe.on("pmes

caching - 配置 Redis 以始终如一地首先驱逐旧数据

我在redis中存储了一堆实时数据。我在所有按键上设置了14400秒(4小时)的TTL。我已将maxmemory设置为10G,目前没有足够的空间在内存中容纳4小时的数据,而且我没有使用虚拟内存,因此redis在数据过期之前驱逐数据。我同意redis逐出数据,但我希望它首先逐出最旧的数据。因此,即使我没有完整的4小时数据,至少我可以有一定范围的数据(3小时、2小时等),其中没有间隙。我试图通过设置maxmemory-policy=volatile-ttl来实现这一点,认为最旧的key将首先被逐出,因为它们都具有相同的TTL,但它不是那样工作的。似乎redis有点武断地逐出数据,所以我的数

redis - 通俗地说,什么是 Redis Pub/Sub?

我为什么要使用它?举一些非常基本的例子。 最佳答案 Redis客户端订阅以接收标有特定标签(称为channel)的消息。其他客户端发布到这个channel。每当任何人向channel发布消息时,Redis都会通知每个订阅客户端。您还可以订阅channel模式-考虑正则表达式匹配。这有助于使代码可分发。它允许代码块在不同的进程中运行,甚至可能在不同的机器中运行,并通过这些队列相互通信。此功能来自repeateduserrequests.给出了一个示例用例here:anews-relatedsiteneedstoupdatethecac

redis - redis pub/sub 模型是否需要与 redis 的持久连接?

在Web应用程序中,如果我需要将事件写入队列,我会连接到Redis以写入事件。现在,如果我想要另一个后端进程(比如守护进程或cron作业)来处理或响应redis中的事件发布,我是否需要持久连接?对这个发布/订阅过程在Web应用程序中的工作方式有点困惑。 最佳答案 基本上在Redis中有两种不同的消息传递模型:即发即弃/一对多:发布/订阅。当一条消息被PUBLISH-ed时,所有的订阅者都会收到它,但是这条消息会永远丢失。如果客户端未订阅,则无法取回。持久队列/一对一:列表,可能与BLPOP等阻塞命令一起使用。对于列表,您有一个生产者

ruby-on-rails - 在初始化程序中设置 cache_store

我正在尝试使用redis-store作为我的Rails3cache_store。我还有一个initializer/app_config.rb,它加载一个用于配置设置的yaml文件。在我的initializer/redis.rb我有:MyApp::Application.config.cache_store=:redis_store,APP_CONFIG['redis']但是,这似乎不起作用。如果我这样做:Rails.cache在我的Rails控制台中,我可以清楚地看到它正在使用ActiveSupport.Cache.FileStore作为缓存存储而不是redis-store。但是,如果

caching - Redis 集群 - 生产准备好了吗?

我正在阅读Redis文档,我对分区功能最感兴趣。Redisdocumentation陈述如下:Datastoreorcache?PartitioningwhenusingRedisadadatastoreorcacheisconceptuallythesame,howeverthereisahugedifference.WhilewhenRedisisusedasadatastoreyouneedtobesurethatagivenkeyalwaysmapstothesameinstance,whenRedisisusedasacacheifagivennodeisunavailabl

caching - Redis 将数据存储在哪里

我将Redis用于发布/订阅以及服务器端缓存。我的意思是我的应用程序服务器有作为一个进程运行的redis服务器(也作为缓存运行)。我有几个瘦客户端(运行redis客户端)以发布/订阅模式连接到此应用程序服务器。我想知道redis将缓存数据存储在哪里?单独在服务器中,或者在客户端中也会有一个副本。如果有近100个redis客户端通过pub/subchannel连接到服务器,以这种方式使用Redis也是一个好主意。谢谢 最佳答案 Redis是一种(某种程度上)内存中的noSQL数据库;但我发现我的副本(在Linux上运行)转储到/var

caching - memcache、redis、ehcache作为分布式缓存框架的比较

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我需要做出的决定之一是在我的系统中使用哪种缓存框架。有这么多可供选择,我目前正在研究redis、ehcache和memcached。谁能指出这三个特定框架的性能基准?还概述了它们的功能-我对缺点特别感兴趣,即。你会在其他情况下使用一个。

redis - 为什么 Redis 具有 Pub/Sub 功能?

为什么Redis,一个数据存储,有Pub/Sub特征?我的第一个想法是实现这样的事情是错误的层。但也许我需要跳出框框思考。 最佳答案 Redis被定义为数据结构服务器。Redis提供多种功能,如内存缓存、队列、pubsub等。这对于cloudapp/webstack非常有用,其中3个组件RabbitMQ(queuing)+XMPP(pubsub)+Memcache目前可以用redis替换。尽管队列功能不如RabbitMQ丰富。 关于redis-为什么Redis具有Pub/Sub功能?,我

具有可靠性的 Redis Pub/Sub

我一直在考虑使用RedisPub/Sub来替代RabbitMQ。根据我的理解,Redis的发布/订阅与每个订阅者保持着持久连接,如果连接终止,所有future的消息都将丢失并掉落在地板上。一个可能的解决方案是使用列表(和阻塞等待)来存储所有消息和发布/订阅,仅作为通知机制。我认为这让我完成了大部分工作,但我仍然对失败案例有些担忧。当订阅者死亡并重新上线时会发生什么,它应该如何处理所有待处理的消息?当系统收到格式错误的消息时,您如何处理这些异常?死信队列?是否有实现重试政策的标准做法? 最佳答案 当订阅者(消费者)死亡时,您的列表将继