Redis-rb客户端队列

时间:2012-01-12 06:04:02

标签: ruby redis

我将使用此客户端库:https://github.com/ezmobius/redis-rb

在github页面中,它没有提及有关队列的任何信息。这种行为是默认的吗?当我向红色添加键/值时,是否自动使用队列数据?

此外,redis具有此BLPOP和BRPOP,允许您阻止,直到队列中出现新值。这可以在redis-rb中找到吗?如果没有,是否有库我可以使用那种支持?

3 个答案:

答案 0 :(得分:1)

是的,宝石完全支持Redis提供的所有东西。

检查实例the documentation on BLPOP

还有this example on working with lists

答案 1 :(得分:0)

当然,redis-rb支持你所要求的一切。 (BLPOP / BRPOP / LPUSH / LPOP)。

  

ree-1.8.7-2011.03:001> REDIS.methods.sort

     

=> [“==”,“===”,“=〜”,“[]”,“[] =”,“ id ”,“ is_a ”, “元类”,“发送”,“`”,“acts_like?”,“追加”,“as_json”,“auth”,“b64encode”,“bgrewriteaof” ,“bgsave”,“空白?”,“blpop”,“断点”,“brpop”,“brpoplpush”,“类”,“class_eval”,“客户端”,“克隆”,“配置”,“copy_instance_variables_from”, “dbsize”,“debug”,“debugger”,“decode64”,“decode_b”,“decr”,“decrby”,“del”,“discard”,“display”,“do_or_do_not”,“dup”,“duplicable” ?“,”echo“,”enable_warnings“,”encode64“,”enum_for“,”eql?“,”equal?“,”exec“,”exists“,”expect“,”expire“,”expireat“,”扩展“,”flushall“,”flushdb“,”冻结“,”冻结?“,”宝石“,”获取“,”getbit“,”getrange“,”getset“,”hash“,”hdel“,”hexists “,”hget“,”hgetall“,”hincrby“,”hkeys“,”hlen“,”hmget“,”hmset“,”hset“,”hsetnx“,”html_safe?“,”hvals“,”id“ ,“incr”,“incrby”,“info”,“inspect”,“instance_eval”,“instance_exec”,“instance_of?”,“instance_values”,“instance_variable_defined?”,“我nstance_variable_get“,”instance_variable_names“,”instance_variable_set“,”instance_variables“,”is_a?“,”is_haml?“,”ivar“,”keys“,”kind_of?“,”lastsave“,”lindex“,”linsert“, “llen”,“load”,“load_dependency”,“lpop”,“lpush”,“lpushx”,“lrange”,“lrem”,“lset”,“ltrim”,“mapped_hmget”,“mapped_hmset”,“mapped_mget “,”mapped_mset“,”mapped_msetnx“,”method“,”method_exists?“,”method_missing“,”methods“,”mget“,”mocha“,”mocha_inspect“,”mon_enter“,”mon_exit“,”mon_synchronize“ ,“mon_try_enter”,“monitor”,“move”,“mset”,“msetnx”,“multi”,“new_cond”,“nil?”,“object_id”,“persist”,“ping”,“pipelined”, “presence”,“present?”,“private_methods”,“protected_methods”,“psubscribe”,“public_methods”,“publish”,“punsubscribe”,“quit”,“randomkey”,“rename”,“renamenx”,“需要“,”require_association“,”require_dependency“,”require_library_or_gem“,”require_or_load“,”reset_mocha“,”respond_to?“,”return“,”rpop“,”rpoplpush“,”rpush“,”rpushx“,”sadd “,”保存“,”scard“,”sdiff“ ,“sdiffstore”,“select”,“send”,“set”,“setbit”,“setex”,“setnx”,“setrange”,“shutdown”,“silence_stderr”,“silence_stream”,“silence_warnings”,“ singleton_class“,”singleton_methods“,”sinter“,”sinterstore“,”sismember“,”slaveof“,”smembers“,”smove“,”sort“,”spop“,”sndsmember“,”srem“,”strlen“ ,“stubba_method”,“stubba_object”,“stubs”,“subscribe”,“subscribed?”,“substr”,“sunion”,“sunionstore”,“suppress”,“suppress_warnings”,“sync”,“synchronize”, “taguri”,“taguri =”,“taint”,“tainted?”,“tap”,“to_a”,“to_enum”,“to_json”,“to_matcher”,“to_param”,“to_query”,“to_s”, “to_yaml”,“to_yaml_properties”,“to_yaml_style”,“try”,“try_mon_enter”,“ttl”,“type”,“unloadable”,“unstub”,“unsubscribe”,“untaint”,“unwatch”,“watch “,”with_options“,”with_warnings“,”without_reconnect“,”zadd“,”zcard“,”zcount“,”zincrby“,”zinterstore“,”zrange“,”zrangebyscore“,”zrank“,”zrem“, “zremrangebyrank”,“zremrangebyscore”,“zrevrange”,“zrevrangebyscore”,“zrevrank”,“zscore”,“ zunionstore“]

答案 2 :(得分:0)

我一直在使用一个在JSON中编码和解析的数组:

begin
  queue = JSON.parse( REDIS.get(:some_queue) )
  item = queue.shift
  REDIS.set(:some_queue,queue.to_json)
  Do::Work.new(item)
rescue #just in case it fails
  queue = JSON.parse( REDIS.get(:lots_queue) )
  queue.prepend(id)
  REDIS.set(:lots_queue,queue.to_json)
end