小编r00*_*00k的帖子

大量摄入Redis

我正在尝试尽快将大量数据加载到Redis中.

我的数据如下:

771240491921 SOME;STRING;ABOUT;THIS;LENGTH
345928354912 SOME;STRING;ABOUT;THIS;LENGTH
Run Code Online (Sandbox Code Playgroud)

左侧有一个~12位数字,右侧有一个可变长度字符串.键将是左侧的数字,数据将是右侧的字符串.

在我刚刚开箱即用的Redis实例中,以及带有此数据的未压缩纯文本文件,我可以在一分钟内获得大约一百万条记录.我需要做大约4500万,这需要大约45分钟.45分钟太长了.

我是否存在一些标准的性能调整来进行这种类型的优化?通过分割不同的实例,我会获得更好的性能吗?

redis

16
推荐指数
1
解决办法
6008
查看次数

常见的lisp习语 - 有更好的方法吗?

我发现自己一直在做这种事情.我一直在考虑编写一个宏/函数来使这种事情更容易,但我发现我可能正在重新发明轮子.

是否有现有的功能可以让我更简洁地完成同样的事情?

(defun remove-low-words (word-list)   
  "Return a list with words of insufficient score removed."
  (let ((result nil))
    (dolist (word word-list)  
      (when (good-enough-score-p word) (push word result)))                                      
    result))  
Run Code Online (Sandbox Code Playgroud)

common-lisp

7
推荐指数
2
解决办法
1851
查看次数

在Rails 3中定义模块内部范围的最佳方法是什么?

我有许多需要相同范围的模型.它们每个都有一个expiration_date我想写一个范围的日期字段.

为了保持DRY,我想将范围放在一个模块(在/ lib中)中,我将扩展每个模型.但是,当我scope在模块内调用时,该方法是未定义的.

为了解决这个问题,我在使用class_eval模块时使用:

module ExpiresWithinScope
  def self.extended(base)
    scope_code = %q{scope :expires_within, lambda { |number_of_months_from_now| where("expiration_date BETWEEN ? AND ?", Date.today, Date.today + number_of_months_from_now) } }
    base.class_eval(scope_code)
  end 
end
Run Code Online (Sandbox Code Playgroud)

然后我extend ExpiresWithinScope在我的模型中做.

这种方法有效,但感觉有点hackish.有没有更好的办法?

ruby ruby-on-rails ruby-on-rails-3

3
推荐指数
2
解决办法
2401
查看次数