草庐IT

lpush、lpop

全部标签

python - Tornado -redis : LPOP works but BLPOP doesn't?

Tornado和Redis的新手我发现这里有人有同样的问题,tornado-redis:RPOPworksbutBRPOPdoesn't?但我仍然不明白为什么,以及如何解决我的问题代码吹得很好#coding:utf-8importrandomimporttimeimporttornado.webimporttornado.httpserverimporttornado.ioloopimporttornado.optionsfromuuidimportuuid4#importredisfromtornado.escapeimportjson_encodeimporttornado.gen

Redis lindex 有效但 lpop 无效

我看到了这种奇怪的行为。我对一个键执行lpush操作。有一个不同的服务可以监听键通知并尝试lpop值。但奇怪的是它返回空值。如果我用0作为索引执行lindex,我会得到值。所以,我肯定知道这个值是可用的。我可以使用redis-cli看到这一点。但是lpop没有返回值。我使用redis2.8.13和JedisJava框架。有人可以帮忙吗? 最佳答案 要调试此尝试使用redisMONITOR命令(例如通过在redis主机的shell中运行redis-climonitor)来查看:真正发送到您的redis的命令是什么,什么时候以及由哪个客

java - 通过 Jedis lpush 将百万条记录添加到 Redis - 连接由 peer : socket write error 重置

当我向Redis中添加一百万(1,000,000)时,就可以了。当我添加两百万(2,000,000)条记录时,出现错误Connectionresetbypeer:socketwriteerror;根据Redisdatatypeslist,列表的最大长度为232-1个元素(4294967295,每个列表超过40亿个元素)。/*Creatingthejsonlist*/Gsongson=newGsonBuilder().create();ListemployeeList=newArrayList();for(inti=1;i日志Exceptioninthread"main"redis.cl

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 lpop 行为

使用LPOP时如果客户端在redis服务器执行命令时断开连接,弹出的项目会发生什么情况?更具体地说,元素是否在未交付的情况下被丢弃,或者由于命令未成功而保留在内存中?感谢任何帮助/指点。 最佳答案 处理弹出的实际逻辑的代码部分忽略了客户端状态。Redis不会等待响应发送完成才能完成对命令的处理。这样等待会很慢,尤其是单线程。您可以查看处理BLPOP的代码部分,了解这是如何发生的://hereiswhereredisactuallypopsfromthelistrobj*value=listTypePop(o,where);serve

transactions - Redis 中的 RPUSH 和 LPUSH 可以赛跑吗?

redis.io上关于RPUSH和LPUSH的文档不清楚这些操作在推送多个项目时是否仍然是O(1)和事务性的。例如,如果两个客户端对具有多个项目的同一个列表执行RPUSH,他们的项目是否会散布并因此乱序?tadman对他的回答的评论最适合我:CanRPUSHandLPUSHinRedisrace? 最佳答案 由于Redis是单线程的,因此它们不会“同时”发生,一个总是先于另一个到达,尽管时间通常是您无法控制的。现在,如果您有两个流程可以以某种方式协调,您可以让一个流程延迟到另一个流程,直到该操作完成。如果您担心这一点,您可以创建某种

javascript - Node.js Redis lpush 错误

我正在使用node.js和redis制作一个网络应用程序。我想在将每个传入请求推送到数据库之前将其推送到redis队列中。但是每次程序到达lpush命令时都会出错。这是我的index.js代码,varexpress=require('express');varapp=express();varhttp=require('http').Server(app);vario=require('socket.io')(http);varqs=require('querystring');varredis=require('redis');varclient=redis.createClient

redis - 关于在 LPush 中输入 key

当key中包含-时,即e:=conn.LPush("6cd3b647-0a9d-4119-6438-07a9dda1bc7f",json)它给出:WRONGTYPEOperationagainstakeyholdingthewrongkindofvalue 最佳答案 'WRONGTYPE'错误意味着该键已经有一个值但是是另一种类型。在您的情况下,key不是列表,因此您可以LPUSH进入它。您可以使用TYPE命令找到key的类型。如果你想在该键中创建一个列表,首先DEL现有的。 关于red

redis - LPUSH 命令是否适用于从 JSON 初始化的记录?

如果redis记录是从一个包含列表的JSON对象设置的,LPUSH命令是否可以稍后在该列表上使用来更新它?(在node.js上使用redis)谢谢 最佳答案 没有。Redis与格式无关。不能解析JSON,也不是面向文档的数据库。LPUSH仅适用于Redis列表对象。但是使用LuaRedis2.6服务器端脚本功能可以做的是解码JSON对象、添加项目、编码回对象并存储它的脚本。例如,使用以下JSON对象:setusers:1"{\"id\":1,\"name\":\"Rocco\",\"age\":50,girlfriends:[\"U