Ruby on Rails:Anemone和Redis问题

时间:2011-02-06 22:06:46

标签: ruby-on-rails gem web-crawler redis

我正在创建各种类型的网络抓取工具,当我使用没有存储空间的Anemone来抓取网站时,它最终会因内存问题而崩溃。

所以我安装了Redis,redis-rb等,并更改了我的代码以使用redis存储..现在我从rails得到一个错误,它没有完成抓取。它确实连接到redis,因为当我监视它时我可以看到活动,但它会停止爬行。

我测试了redis并且工作正常......

任何想法???

错误

  

RuntimeError(-ERR'hgetall'命令的参数个数错误):   /usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:274:in   read_reply”   /usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:198:inraw_call_command”   /usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:196:in   地图'   /usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:196:inraw_call_command”   /usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:161:in   call_command”   /usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:151:inmethod_missing”   海葵(0.5.0)lib / anemone / storage / redis.rb:82:在rget'海葵中   (0.5.0)lib / anemone / storage / redis.rb:41:ineach'anemone(0.5.0)   lib / anemone / storage / redis.rb:40:每个'海葵(0.5.0)   lib / anemone / storage / redis.rb:57:inkeys'anemone(0.5.0)   lib / anemone / storage / redis.rb:12:初始化'海葵(0.5.0)   lib / anemone / storage.rb:30:innew' anemone(0.5.0)   lib / anemone / storage.rb:30:在Redis中   应用程序/控制器/ processpages_controller.rb:332:incrawlnewsite'

Redis监控结果:

+1297028372.281985“keys”“anemone:pages:*”

版本/环境:

redis:尝试过版本2和2.0.4 - 同样的p roblem任一版本 轨道。 2.3.8,ruby 1.8.7patch 174 os:centos 5 redis - 默认端口6379 hostgator vps / control panel x

安装了宝石

海葵0.5.0和依赖(noko等...) redis gem(2.1.1) redis-name-space(0.8.0)

要求'海葵'

要求'redis'

要求'redis-namespace'

Anemone.crawl(主页)做|海葵|

anemone.storage = Anemone :: Storage.Redis

anemone.on_every_page do | page |

......大量的代码

配置/ redis.yml

默认值:&默认值 host:localhost port:6379

发展: <&lt ;: *默认

试验: <&lt ;: *默认

分期: <&lt ;: *默认

生产: <&lt ;: *默认

1 个答案:

答案 0 :(得分:0)

你的问题是

RuntimeError (-ERR wrong number of arguments for 'hgetall' command):

在代码的某处,您正在尝试调用'hgetall',但是没有传递密钥,或者您传递了太多参数。只需检查您的代码,找到您调用该命令的位置,并传递正确的#参数(1)

http://redis.io/commands/hgetall