草庐IT

Signalr-Redis

全部标签

redis - Servicestack.Redis Pub/Sub 与其他嵌套 Redis 命令的限制

我对ServiceStack和Redis有很好的体验,但我对线程内的ThreadPool和Pub/Sub以及在消息回调中访问Redis的明显限制感到困惑。我得到的实际错误表明我只能在“当前上下文”中调用“订阅”或“发布”。当我尝试从消息回调执行另一个Redis操作时会发生这种情况。我有一个必须持续运行的流程。在我的例子中,我不能只为一个请求服务一次,而是必须让一个线程一直保持事件状态来进行计算(并且从RESTAPI路由控制这些线程是理想的)。数据必须定期进入流程,并且必须发布数据。该进程还必须存储和检索来自Redis的数据。我正在使用路由和服务来获取数据并将其存储在Redis中,因此这

java - 从服务器的角度来看,我什么时候应该使用 Redis 而不是像 HashMap 或 ConcurrentHashMaps 这样的 DS

我的key由一些不一定需要Redis的非原始对象组成,即我不一定打算在这里将Redis用作任何DS服务器。但是假设服务器一直在运行,我什么时候应该考虑使用Redis而不是HashMap来存储相关数据?我的问题陈述需要频繁写入、读取和从所选数据结构中删除。谢谢! 最佳答案 我不是Redis的专家,我有一个类似的Java产品,但更笼统地回答这个问题....Redis(和类似的解决方案)对与其他程序共享数据。从堆中取出数据,减少GC暂停。让您可以通过工具直接访问您的数据。跨机器复制数据。快速重启您的Java应用程序。允许您将Java应用程

list - 如何在 Redis 中一次弹出多个列表

我正在使用node_redis。我想一次从多个列表中弹出元素。这是我的代码。setInterval(function(){redisClient.rpop('qwerty123',function(errorMessage,responseData){socketData.emit('qwerty123',{'qwerty123':responseData.toString()});});redisClient.rpop('qwerty234',function(errorMessage,responseData){socketData.emit('qwerty234',{'qwert

php - 使用 Predis 查询 Redis 中的数组

我想用Predis在Redis中存储和“选择”数组,我输入的数据如下:$redis->hset("account_id_".$account_id,"access_time",time());所以我把这个结构存储在redis中db0account_id_1access_time:1400901850...othervaluesaccount_id_2access_time:1400901862...othervalues...other_accounts我想选择一系列unix时间戳中的所有帐户,但到目前为止我还没有找到方法,我怀疑数据结构是否适合此目的。 最

logging - 如何查看ServiceStack.Redis中执行的redis命令?

我想更好地了解ServiceStack.Redis在幕后做了什么。我希望我可以连接一个调试/控制台记录器,它只会将执行的命令输出到该记录器,但我一直无法找到合适的API。我确实找到了一些关于使用LogManager.LogFactory=newDebugLogFactory的引用,但即使在执行此操作之后,我的调试输出中也没有出现来自ServiceStack的任何内容。我也尝试使用redis-cli中的MONITOR命令,但在使用redis的Windows端口时似乎有一些问题,因为它给我以下错误:(error)ERRunknowncommand'monitor'.

Redis - 存储和检索大量键的最有效方式

我打算使用Redis作为主要的数据库并保存一大组键(~20^12个键+值)。这些键将类似于以下内容(对于帖子):+-------------++--title----++-------------++----id-----+看起来HMSET是最好的选择,但它是O(N)而HSETO(1)。是否有类似HMSET的操作但时间复杂度为O(1)?我最担心的是网络传输开销以及检索特定key的时间(如果该key恰好位于字段中间)。否则,您如何处理如此庞大的数据集? 最佳答案 我在HMGET上引用了Redis文档:Timecomplexity:O(

php - 在 laravel redis 中设置 ZADD 命令的选项

我正在尝试使用laravelredis为ZADD设置选项,但失败了。我需要设置的选项是NX,如文档中所述:ZADDoptions(Redis3.0.2orgreater)ZADDsupportsalistofoptions,specifiedafterthenameofthekeyandbeforethefirstscoreargument.所以我是这样写的:$this->redis->zAdd('orderIDs:'.$category,'NX',[$orderId=>$timestamp[1]]);我得到的错误信息是PHPwarning:strlen()expectsparamet

amazon-web-services - 访问 AWS 上的 Redis 服务器

我无法从远程AWS实例连接到我的Redis服务器(虽然两个实例都在同一个VPC中)...我已经启动了CentOS6实例并启动了Redis服务器。我可以确认服务器正在运行:tcp00*:6379*:*LISTEN891/redis-server*tcp00*:6379*:*LISTEN891/redis-server*我已将AWS安全组设置为:CustomTCP|port6379|0.0.0.0/0我可以使用redis-cli从同一实例连接到Redis服务器,但是当我尝试从其他AWS实例连接时,我得到:CouldnotconnecttoRedisatec2-*.compute.amazo

session - 无法使用 Servicestack 在 Redis 上设置 session 信息

我在Redis上设置session信息时遇到问题。以下是我所做的配置。appHost.Plugins.Add(newAuthFeature(()=>newCustomUserSession(),newIAuthProvider[]{newBasicAuthProvider{SessionExpiry=newTimeSpan(1000,0,0)},newCredentialsAuthProvider(appSettings){SessionExpiry=newTimeSpan(1000,0,0)}}));container.Register(c=>newPooledRedisClient

c# - 如何将存储在 redis 中的数据与数据库中的数据同步?

假设我将用户数据从我的数据库加载到redis。假设5秒过去了,数据库中的用户信息已经更新。检查redis中的数据是否不同步的最好方法是什么?您是否定期调用数据库并检查您的数据是否与数据库中存储的数据相同?还是检查何时将一些数据提交到数据库?我正在使用stackexchange.redis作为客户端,如果这有什么不同的话。 最佳答案 您的问题的答案取决于软件架构和风格,您的应用程序是否有效。如果您只有一个应用程序和一个组件(单体方式),数据同步应该在应用程序内发生。通过应用程序更新用户,并将记录写入数据库和Redis。如果您有多个应用