草庐IT

redis - 我可以使用 lpop/rpop 和 Redis 创建一个简单的队列系统吗?

我尝试了几种消息/作业队列系统,但它们似乎都增加了不必要的复杂性,而且我总是以队列进程无缘无故死机和神秘的日志消息告终。所以现在我想用Redis制作自己的队列系统。你会怎么做?据我所知,Redis很好,因为它有lpop和rpush方法,还有一个发布/订阅系统,可以用来通知工作人员有新消息要使用。这是正确的吗? 最佳答案 是的,你可以。事实上,有很多包可以做到这一点......包括Celery和RQ用于Python和resque对于Ruby和resque到Java(Jesque和Javascript(Coffee-resque))的端

node.js - 如何获取 Redis 的 lpop 或 rpop 项的索引

我正在使用Redis作为内存数据库进行实时分析。在我的分析中,我继续在不断增长的Redis-list上执行rpop以对每个rpop'ed项目执行分析。为了清理Redis-list并且不让其过大,我应该在23处提取并备份Redis-list:每天的59:59。如果我在23:59:59盲目地对Redis-list进行清理,则可能有一些元素不是lpop'ed或rpop'ed可能会被清理干净。索引是在分析不断增长的列表时清理列表的最佳选择。是否有任何Redis-commands来获取lpop'ed或rpop'ed项目的索引? 最佳答案 如果

Python redis rpop 是 resultng b'value' 列表结构

我正在使用dockercompose开发一个简单的redis和flask项目。我的flask使用lpush、rpop操作redis列表结构。在我使用像brpop这样的命令之前,它工作得很好,现在我的所有结果都变成了b'value'。我尝试只使用第一个命令,但不知何故b'value'输出不断出现。知道是什么原因造成的吗?**redis.lpush('moviestore','likemov')itle=redis.rpop('moviestore')** 最佳答案 redis字符串似乎是Python字节字符串(参见有关DataType

node.js - lpush 后的 node_redis rpop 数组

当我在我之前将包含4个值的数组推送到的列表上使用rpop时,Redis按预期返回所有4个值。我的问题是它们作为单个值返回。有没有办法让Redis返回一个包含4个值的数组,而不是返回数组包含的4个值?我正在使用node_redis客户端https://github.com/NodeRedis/node_redis.这是一些代码,可让您了解我在做什么。redisClient.lpush(data.pushKey,data.rowTest);data.rowtest看起来像这样[0,496,1,48]。redisClient.rpop(data.popKey,function(err,res

node.js - redis事务: how to lpush the result of rpop of a list?

如果我有一个列表并执行:step1:rpopstep2:lpush我想在我的列表中保持循环并避免数据丢失,我认为这是关于事务的问题,该怎么做? 最佳答案 rpoplpush,我应该多看看官方文档。https://redis.io/commands/rpoplpush 关于node.js-redis事务:howtolpushtheresultofrpopofalist?,我们在StackOverflow上找到一个类似的问题: https://stackoverf

Redis:从排序集中获取值作为列表中的rpop

我想将数据作为键值存储在Redis中。为此使用排序集,因为列表不允许以键值格式存储数据。所以使用排序集。但我希望数据在redis列表rpop中工作时被弹出。redis的ZREM需要成员来获取分数,再加上它是一个排序列表,所以我可以按先到先得的方法存储吗?或者我应该改变我正在使用的数据结构吗? 最佳答案 这是一个解决方案,但您应该决定其效率;)ZREVRANGEBYSCOREkey+inf-infLIMIT01您可以做的一件事是使用redislists并将您的数据存储为key[FS]value例如:姓名:xxx因此,一旦您将数据弹出,

redis - Redis LPOP/RPOP 操作是原子的吗?

我正在尝试在Redis中构建FIFO队列,但我只是担心并发性。如果2个客户端尝试同时进行RPOP操作怎么办?如果RPOP/LPOP不是原子的,那么如何使用MULTI/EXEC实现原子性? 最佳答案 IsRedisLPOP/RPOPoperationatomic?是的,LPOP和RPOP都是原子的。Whatif2clientstrytodoRPOPoperationsimultaneously?如果LIST的大小等于或大于2,则两个客户端都会得到不同的项目。如果LIST只有一个项目,则只有一个客户端获取该项目,而另一个客户端得到空回复