class RedisRds::List
Public Instance Methods
clear()
click to toggle source
# File lib/redis_rds/list.rb, line 44 def clear # if start > end redis clears the list # http://redis.io/commands/ltrim return connection.ltrim(@redis_key, 1, 0) end
each(&block)
click to toggle source
# File lib/redis_rds/list.rb, line 40 def each(&block) return get(0).each(&block) end
empty?()
click to toggle source
# File lib/redis_rds/list.rb, line 9 def empty? return self.size == 0 # rubocop:disable Style/ZeroLengthPredicate end
get(start, stop = -1)
click to toggle source
# File lib/redis_rds/list.rb, line 13 def get(start, stop = -1) return connection.lrange(@redis_key, start, stop) end
lpop(length = 1, force = false)
click to toggle source
# File lib/redis_rds/list.rb, line 25 def lpop(length = 1, force = false) lua_script = " local length = tonumber(ARGV[1]); if (ARGV[2] ~= 'true' or redis.call('llen', KEYS[1])>=length) then local result = redis.call('lrange', KEYS[1], 0, length - 1); redis.call('ltrim', KEYS[1], length, - 1); return result else return '' end" result = connection.eval(lua_script, [@redis_key], [length, force]) result = [] if result.blank? return result end
lpush(elems)
click to toggle source
# File lib/redis_rds/list.rb, line 21 def lpush(elems) return connection.lpush(@redis_key, Array.wrap(elems)) end
rpush(elems)
click to toggle source
# File lib/redis_rds/list.rb, line 17 def rpush(elems) return connection.rpush(@redis_key, Array.wrap(elems)) end
size()
click to toggle source
# File lib/redis_rds/list.rb, line 5 def size return connection.llen(@redis_key) end