Class: RailsKvsDriver::RedisDriver::Driver

Inherits:
Base
  • Object
show all
Defined in:
lib/rails_kvs_driver/redis_driver.rb

Instance Method Summary collapse

Instance Method Details

#[](key) ⇒ String

get value from kvs.

Parameters:

  • key (String)

    key.

Returns:

  • (String)

    value.



21
22
23
# File 'lib/rails_kvs_driver/redis_driver.rb', line 21

def [](key)
  @kvs_inst.get(safe_key(key))
end

#[]=(key, value) ⇒ Boolean

set value to kvs.

Parameters:

  • key (String)

    key.

  • value (String)

    value.

Returns:

  • (Boolean)

    result



29
30
31
# File 'lib/rails_kvs_driver/redis_driver.rb', line 29

def []=(key, value)
  @kvs_inst.set(safe_key(key), value)
end

#add_sorted_set(key, member, score) ⇒ Boolean

Note:

same as sorted set of redis. refer to redis.

add sorted set to kvs. when the key doesn’t exist, it’s made newly.

Parameters:

  • key (String)

    key of sorted set.

  • member (String)

    member of sorted set.

  • score (Float)

    score of sorted set.

Returns:

  • (Boolean)

    result.



70
71
72
# File 'lib/rails_kvs_driver/redis_driver.rb', line 70

def add_sorted_set(key, member, score)
  @kvs_inst.zadd(safe_key(key), score, member)
end

#all_keysArray<String>

get all keys from kvs.

Returns:

  • (Array<String>)

    array of key names.



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/rails_kvs_driver/redis_driver.rb', line 35

def all_keys
  result      = Array.new
  pattern     = safe_key('*')
  header_len  = pattern.length - 1

  @kvs_inst.keys(pattern).each do |key|
    result.push key[header_len .. -1]
  end

  return result
end

#connectBoolean

connect with driver config.

Returns:

  • (Boolean)

    result



9
10
11
12
13
14
15
16
# File 'lib/rails_kvs_driver/redis_driver.rb', line 9

def connect
  begin
    @kvs_inst = Redis.new(host: @driver_config[:host], port: @driver_config[:port])
    return true
  rescue
    return false
  end
end

#count_sorted_set_member(key) ⇒ Integer

Note:

same as sorted set of redis. refer to redis.

count members of sorted set

Parameters:

  • key (String)

    key of sorted set.

Returns:

  • (Integer)

    members num



131
132
133
# File 'lib/rails_kvs_driver/redis_driver.rb', line 131

def count_sorted_set_member(key)
  @kvs_inst.zcard(safe_key(key))
end

#delete(key) ⇒ Boolean

delete key from kvs.

Returns:

  • (Boolean)

    result.



49
50
51
# File 'lib/rails_kvs_driver/redis_driver.rb', line 49

def delete(key)
  (@kvs_inst.del(safe_key(key)) == 1)
end

#delete_allBoolean

delete all keys from kvs.

Returns:

  • (Boolean)

    result.



55
56
57
58
59
60
# File 'lib/rails_kvs_driver/redis_driver.rb', line 55

def delete_all
  keys    = @kvs_inst.keys(safe_key('*'))
  del_num = @kvs_inst.del(keys) if keys.length > 0

  (del_num == keys.length)
end

#increment_sorted_set(key, member, score) ⇒ Float

This method is abstract.

increment score of member from sorted set.

Note:

same as sorted set of redis. refer to redis.

increment score of member from sorted set.

Parameters:

  • key (String)

    key of sorted set.

  • member (String)

    member of sorted set.

  • score (Float)

    increment score.

Returns:

  • (Float)

    value after increment



94
95
96
# File 'lib/rails_kvs_driver/redis_driver.rb', line 94

def increment_sorted_set(key, member, score)
  @kvs_inst.zincrby(safe_key(key), score, member)
end

#remove_sorted_set(key, member) ⇒ Boolean

This method is abstract.

remove sorted set from kvs.

Note:

same as sorted set of redis. refer to redis.

remove sorted set from kvs. This function doesn’t delete a key.

Parameters:

  • key (String)

    key of sorted set.

  • member (String)

    member of sorted set.

Returns:

  • (Boolean)

    result.



82
83
84
# File 'lib/rails_kvs_driver/redis_driver.rb', line 82

def remove_sorted_set(key, member)
  @kvs_inst.zrem(safe_key(key), member)
end

#sorted_set(key, start = 0, stop = -1,, reverse = false) ⇒ Array<String, Float>

This method is abstract.

get array of sorted set.

Note:

same as sorted set of redis. refer to redis.

get array of sorted set.

Parameters:

  • key (String)

    key of sorted set.

  • start (Integer) (defaults to: 0)

    start index

  • stop (Integer) (defaults to: -1,)

    stop index

  • reverse (Boolean) (defaults to: false)

    order by desc

Returns:

  • (Array<String, Float>)

    ] array of the member and score.



118
119
120
121
122
123
124
# File 'lib/rails_kvs_driver/redis_driver.rb', line 118

def sorted_set(key, start=0, stop=-1, reverse=false)
  if reverse
    @kvs_inst.zrevrange(safe_key(key), start, stop, with_scores: true)
  else
    @kvs_inst.zrange(safe_key(key), start, stop, with_scores: true)
  end
end

#sorted_set_score(key, member) ⇒ Float

This method is abstract.

get the score of member.

Note:

same as sorted set of redis. refer to redis.

get the score of member.

Parameters:

  • key (String)

    key of sorted set.

  • member (String)

    member of sorted set.

Returns:

  • (Float)

    score of member.



105
106
107
# File 'lib/rails_kvs_driver/redis_driver.rb', line 105

def sorted_set_score(key, member)
  @kvs_inst.zscore(safe_key(key), member)
end