Module: MeRedis::ZipToHash

Defined in:
lib/me_redis/zip_to_hash.rb

Overview

include

Defined Under Namespace

Modules: PrependMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



32
33
34
35
# File 'lib/me_redis/zip_to_hash.rb', line 32

def self.included(base)
  base.extend(MeRedis::ClassMethods)
  base.prepend(PrependMethods)
end

Instance Method Details

#me_del(*keys) ⇒ Object



37
38
39
# File 'lib/me_redis/zip_to_hash.rb', line 37

def me_del( *keys )
  keys.length == 1 ? hdel( *split_key(*keys) ) : pipelined{ keys.each{ |key| hdel( *split_key(key) ) } }
end

#me_exists?(key) ⇒ Boolean

Returns:

  • (Boolean)


52
# File 'lib/me_redis/zip_to_hash.rb', line 52

def me_exists?(key); hexists(*split_key(key)) end

#me_get(key) ⇒ Object



43
# File 'lib/me_redis/zip_to_hash.rb', line 43

def me_get( key ); hget(*split_key(key)) end

#me_getset(key, value) ⇒ Object



45
46
47
48
49
50
# File 'lib/me_redis/zip_to_hash.rb', line 45

def me_getset(key, value)
  # multi returns array of results, also we can use raw results in case of commpression take place
  # but inside pipeline, multi returns nil
  ftr = []
  ( multi{ ftr << me_get( key ); me_set( key, value ) } || ftr )[0]
end

#me_incr(key) ⇒ Object



54
# File 'lib/me_redis/zip_to_hash.rb', line 54

def me_incr(key); hincrby( *split_key(key), 1 ) end

#me_incrby(key, value) ⇒ Object



56
# File 'lib/me_redis/zip_to_hash.rb', line 56

def me_incrby(key, value); hincrby(*split_key(key), value) end

#me_mget(*keys) ⇒ Object

be aware: you cant save result of me_mget inside pipeline or multi cause pipeline returns nil



66
67
68
# File 'lib/me_redis/zip_to_hash.rb', line 66

def me_mget( *keys )
  pipelined { keys.each{ |key| me_get( key ) } }
end

#me_mget_p(*keys) ⇒ Object

version to be called inside pipeline, to get values, call map(&:value)



71
72
73
74
75
# File 'lib/me_redis/zip_to_hash.rb', line 71

def me_mget_p( *keys )
  ftr = []
  pipelined { keys.each{ |key| ftr << me_get( key ) } }
  ftr
end

#me_mset(*args) ⇒ Object

must be noticed it’s not a equal replacement for a mset, because me_mset can be partially executed, since redis doesn’t rollbacks partially failed transactions



60
61
62
63
# File 'lib/me_redis/zip_to_hash.rb', line 60

def me_mset( *args )
  #it must be multi since it keeps an order of commands
  multi{ args.each_slice(2) { |key, value| me_set( key, value ) } }
end

#me_set(key, value) ⇒ Object



41
# File 'lib/me_redis/zip_to_hash.rb', line 41

def me_set( key, value ); hset( *split_key(key), value ) end

#me_setnx(key, value) ⇒ Object



42
# File 'lib/me_redis/zip_to_hash.rb', line 42

def me_setnx( key, value ); hsetnx( *split_key(key), value ) end