Module: FreshRedis::Hash
- Included in:
- FreshRedis
- Defined in:
- lib/fresh_redis/hash.rb
Instance Method Summary collapse
- #fhdel(key, hash_key, options = {}) ⇒ Object
- #fhget(key, hash_key, options = {}) ⇒ Object
- #fhgetall(key, options = {}) ⇒ Object
- #fhset(key, hash_key, value, options = {}) ⇒ Object
Instance Method Details
#fhdel(key, hash_key, options = {}) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/fresh_redis/hash.rb', line 41 def fhdel(key, hash_key, ={}) key = build_key(key, ) bucket_values = @redis.pipelined { key..each do |bucket_key| @redis.hdel(bucket_key, hash_key) end } end |
#fhget(key, hash_key, options = {}) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/fresh_redis/hash.rb', line 12 def fhget(key, hash_key, ={}) key = build_key(key, ) bucket_values = @redis.pipelined { key..reverse.each do |bucket_key| @redis.hget(bucket_key, hash_key) end } # find the first non-nil value bucket_values.find{|e| e } end |
#fhgetall(key, options = {}) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/fresh_redis/hash.rb', line 25 def fhgetall(key, ={}) key = build_key(key, ) bucket_values = @redis.pipelined { key..each do |bucket_key| @redis.hgetall(bucket_key) end } merged_values = bucket_values.inject({}){ |acc, bucket_hash| acc.merge(bucket_hash) } merged_values.reject{ |key, value| !value } end |
#fhset(key, hash_key, value, options = {}) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/fresh_redis/hash.rb', line 4 def fhset(key, hash_key, value, ={}) key = build_key(key, ) @redis.multi do @redis.hset(key.redis_key, hash_key, value) @redis.expire(key.redis_key, key.freshness) end end |