草庐IT

Scrapy-Redis

全部标签

javascript - 在 Express 路由中使用 redis

我只想能够在一个路由中的键中存储一个值/api/foo?redisKey="1"(setvalueforid=1)然后我想在另一个路由中获取值。/api/bar?redisKey="1"(getvalueforid=1)但是,redis是异步的,所以你必须等待它连接client.on('connect',function(){//performredisoperations});我不确定如何在我的路由器中同步它。 最佳答案 我假设您使用的是redis为您的客户端库。在您的快速路由文件中,您不希望在每个请求期间都创建连接。相反,您将在

node.js - 如何在 Redis 中的对象中搜索值?

我是Redis和Nodejs的新手,我看过this教程,我正在尝试按名称搜索用户,这是对象,当我传递id时从redis返回:{first_name:'‪john',last_name:'doe',email:'john@gmail.com',phone:'543313305',id:'user001'}这是搜索的功能:app.post('/user/search',function(req,res,next){letid=req.body.id;client.hgetall(id,function(err,obj){if(!obj){res.render('searchusers',{

node.js - 如何将所有redis记录传递给查看?

我想将所有记录从Redis传递到View。我认为我对redis值做错了,因为我无法将它推送到数组或对象。我试过这样:app.get('/',function(req,res,next){varitems=[];client.keys('*',function(err,obj){for(vari=0,len=obj.length;i当我控制台记录我得到的值时for(vari=0,len=obj.length;i值显然是一个对象...我需要对其值进行for循环吗?或者也许有更简单的方法。 最佳答案 那是因为你正在进行异步调用,试试这个代

redis - 实例化新的 redis-server (Linux)

我正在我的设置中实例化一个新的redis服务器(目前它只运行一个)。其中一个步骤是在/etc/init.d/中复制redis-server并为新实例配置它。具体来说,我正在更改脚本中DAEMON_ARGS、NAME、DESC和PIDFILE的值。这是代码:PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binDAEMON=/usr/bin/redis-serverDAEMON_ARGS=/etc/redis/redis-2.confNAME=redis2-serverDESC=redis2-serverRUND

python - 当 2 个不同的窗口访问同一个键时,为什么 Redis 返回 2 个不同的类型?

我正在使用Python和redis-pyPython客户端与同一个Redis通信,它由RedisLabs作为Redis(e)Cloud提供。在终端中,检索一个键并将值作为字符串类型返回。而当我在我的IDE中运行一个代码文件时,相同的代码返回一个字节对象。我不明白为什么他们返回不同的类型。我屏蔽了Redis主机和端口的详细信息,但它们访问的是同一个Redis,而且我在截取这两个屏幕截图之间没有做任何更改。 最佳答案 这不是redis的问题,而是Py2和Py3的区别。Python3.0usestheconceptsoftextand(b

redis - 杰迪斯连接异常 : Unexpected end of stream error

我正在尝试执行rpush操作并遇到以下错误:redis.clients.jedis.exceptions.JedisConnectionException:Unexpectedendofstream.atredis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:199)~[jedis-2.9.0.jar:na]atredis.clients.util.RedisInputStream.readByte(RedisInputStream.java:40)~[jedis-2.9.0.jar:na]atredis

lua - Redis 链式命令

我想知道将一系列命令链接在一起以便它们在返回最终结果之前都在Redis上执行的最佳方法是什么?我所有的数据都存储在集合中。data1=[a,b,c,d,e]data2=[b,c]我将如何获取data1和data2的交集(result=b,c),然后对结果调用SRANDMEMBER?在一个系列中它看起来像:redis>SINTERdata1data2redis>SRANDMEMBER当然可以将其他操作链接在一起,例如SDIFF和SADD,但从交叉点中选择随机项目似乎是最简单的示例。我尝试创建一个lua脚本,但当我尝试执行以下代码时收到消息“Luaredis()命令参数必须是字符串或整数”

redis - redis的aof文件太大,重写后会怎样?

我正在阅读有关redis持久性的内容,目前有两种方法可用于保持redis持久性。AOF关系数据库好的,我将跳过“AOF”和“RDB”的基本含义,我有一个关于“AOF”的问题,我的问题是“当redis的aof文件太大时会发生什么,即使在被重写?”,我在谷歌上搜索,但没有结果,有人说当“AOF”文件的大小达到3G或4G时,redis-server将无法启动。谁能告诉我?非常感谢。 最佳答案 Redis不限制AOF文件的大小。您可以安全地拥有一个大的AOF文件。我的一个Redis实例写了一个大小为95G的AOF文件,它可以成功地重新加载文

redis - 为什么我在 REDIS 控制台中得到 "(error) ERR unknown command: redis-cli"?

我正在尝试删除一些键,但无法执行任何redis-cli命令:redis-cli--scan--patter'assetInfo*'|xargsredis-clidel错误是:(error)ERRunknowncommand:redis-cli我使用的是REDIS3.2.7版。这个版本不支持redis-cli吗?什么给了?更新:当我在没有'redis-cli'的情况下执行此操作时,我得到了这个:AzureRedisHealthDev:0>--scan--pattern'spout*'|xargsredis-clidelERRunknowncommand:--scan

linux - 从 shell 脚本启动时使 redis 服务器忽略 Ctrl+C

我想使用shell脚本启动Redis服务器,然后监控日志文件:#!/bin/bash/path/to/redis/src/redis-server&tail-f/path/to/log/logfile.log如果我运行此脚本并从终端按Ctrl+C,tail-f终止,这是我想要的,但是Redis也检测到SIGINT并退出。我试过这样写脚本:#!/bin/bashtrap''INTTSTP~/redis/src/redis-server&tail-f./script1这次事情变得更糟,tail-f拒绝终止,而Redis仍然检测到SIGINT并退出。在忽略信号方面似乎存在一些Redis特有的