Module: Redis::Commands::Hashes
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
| Included In: | |
| Defined in: | lib/redis/commands/hashes.rb | 
Instance Method Summary
- 
    
      #hdel(key, *fields)  ⇒ Integer 
    
    Delete one or more hash fields. 
- 
    
      #hexists(key, field)  ⇒ Boolean 
    
    Determine if a hash field exists. 
- 
    
      #hexpire(key, ttl, *fields)  ⇒ Array<Integer> 
    
    Setsthe time to live in seconds for one or more fields.
- 
    
      #hget(key, field)  ⇒ String 
    
    Get the value of a hash field. 
- 
    
      #hgetall(key)  ⇒ Hash<String, String> 
    
    Get all the fields and values in a hash. 
- 
    
      #hincrby(key, field, increment)  ⇒ Integer 
    
    Increment the integer value of a hash field by the given integer number. 
- 
    
      #hincrbyfloat(key, field, increment)  ⇒ Float 
    
    Increment the numeric value of a hash field by the given float number. 
- 
    
      #hkeys(key)  ⇒ Array<String> 
    
    Get all the fields in a hash. 
- 
    
      #hlen(key)  ⇒ Integer 
    
    Get the number of fields in a hash. 
- 
    
      #hmget(key, *fields, &blk)  ⇒ Array<String> 
    
    Get the values of all the given hash fields. 
- 
    
      #hmset(key, *attrs)  ⇒ String 
    
    Set one or more hash values. 
- 
    
      #hrandfield(key, count = nil, withvalues: false, with_values: withvalues)  ⇒ nil, ... 
    
    Get one or more random fields from a hash. 
- 
    
      #hscan(key, cursor, **options)  ⇒ String, Array<[String, String]> 
    
    Scan a hash. 
- 
    
      #hscan_each(key, **options, &block)  ⇒ Enumerator 
    
    Scan a hash. 
- 
    
      #hset(key, *attrs)  ⇒ Integer 
    
    Set one or more hash values. 
- 
    
      #hsetnx(key, field, value)  ⇒ Boolean 
    
    Set the value of a hash field, only if the field does not exist. 
- 
    
      #httl(key, *fields)  ⇒ Array<Integer> 
    
    Returns the time to live in seconds for one or more fields. 
- 
    
      #hvals(key)  ⇒ Array<String> 
    
    Get all the values in a hash. 
- 
    
      #mapped_hmget(key, *fields)  ⇒ Hash 
    
    Get the values of all the given hash fields. 
- 
    
      #mapped_hmset(key, hash)  ⇒ String 
    
    Set one or more hash values. 
Instance Method Details
    #hdel(key, *fields)  ⇒ Integer 
  
Delete one or more hash fields.
# File 'lib/redis/commands/hashes.rb', line 156
def hdel(key, *fields) fields.flatten!(1) send_command([:hdel, key].concat(fields)) end
    #hexists(key, field)  ⇒ Boolean 
  
Determine if a hash field exists.
# File 'lib/redis/commands/hashes.rb', line 166
def hexists(key, field) send_command([:hexists, key, field], &Boolify) end
    #hexpire(key, ttl, *fields)  ⇒ Array<Integer> 
  
Sets the time to live in seconds for one or more fields.
See https://redis.io/docs/latest/commands/hexpire/#return-information for array reply.
# File 'lib/redis/commands/hashes.rb', line 269
def hexpire(key, ttl, *fields) send_command([:hexpire, key, ttl, 'FIELDS', fields.length, *fields]) end
    #hget(key, field)  ⇒ String 
  
Get the value of a hash field.
# File 'lib/redis/commands/hashes.rb', line 74
def hget(key, field) send_command([:hget, key, field]) end
    #hgetall(key)  ⇒ Hash<String, String> 
  
Get all the fields and values in a hash.
# File 'lib/redis/commands/hashes.rb', line 210
def hgetall(key) send_command([:hgetall, key], &Hashify) end
    #hincrby(key, field, increment)  ⇒ Integer 
  
Increment the integer value of a hash field by the given integer number.
# File 'lib/redis/commands/hashes.rb', line 176
def hincrby(key, field, increment) send_command([:hincrby, key, field, Integer(increment)]) end
    #hincrbyfloat(key, field, increment)  ⇒ Float 
  
Increment the numeric value of a hash field by the given float number.
# File 'lib/redis/commands/hashes.rb', line 186
def hincrbyfloat(key, field, increment) send_command([:hincrbyfloat, key, field, Float(increment)], &Floatify) end
    #hkeys(key)  ⇒ Array<String> 
  
Get all the fields in a hash.
# File 'lib/redis/commands/hashes.rb', line 194
def hkeys(key) send_command([:hkeys, key]) end
    #hlen(key)  ⇒ Integer 
  
Get the number of fields in a hash.
# File 'lib/redis/commands/hashes.rb', line 10
def hlen(key) send_command([:hlen, key]) end
    #hmget(key, *fields, &blk)  ⇒ Array<String> 
  
Get the values of all the given hash fields.
# File 'lib/redis/commands/hashes.rb', line 89
def hmget(key, *fields, &blk) fields.flatten!(1) send_command([:hmget, key].concat(fields), &blk) end
    #hmset(key, *attrs)  ⇒ String 
  
Set one or more hash values.
# File 'lib/redis/commands/hashes.rb', line 50
def hmset(key, *attrs) send_command([:hmset, key] + attrs) end
    #hrandfield(key, count = nil, withvalues: false, with_values: withvalues)  ⇒ nil, ... 
  
Get one or more random fields from a hash.
# File 'lib/redis/commands/hashes.rb', line 138
def hrandfield(key, count = nil, withvalues: false, with_values: withvalues) if with_values && count.nil? raise ArgumentError, "count argument must be specified" end args = [:hrandfield, key] args << count if count args << "WITHVALUES" if with_values parser = Pairify if with_values send_command(args, &parser) end
    #hscan(key, cursor, **options)  ⇒ String, Array<[String, String]> 
  
  [ GitHub ]
# File 'lib/redis/commands/hashes.rb', line 227
def hscan(key, cursor, **) _scan(:hscan, cursor, [key], **) do |reply| [reply[0], reply[1].each_slice(2).to_a] end end
    #hscan_each(key, **options, &block)  ⇒ Enumerator 
  
  [ GitHub ]
# File 'lib/redis/commands/hashes.rb', line 246
def hscan_each(key, **, &block) return to_enum(:hscan_each, key, **) unless block_given? cursor = 0 loop do cursor, values = hscan(key, cursor, **) values.each(&block) break if cursor == "0" end end
    #hset(key, *attrs)  ⇒ Integer 
  
Set one or more hash values.
# File 'lib/redis/commands/hashes.rb', line 23
def hset(key, *attrs) attrs = attrs.first.flatten if attrs.size == 1 && attrs.first.is_a?(Hash) send_command([:hset, key, *attrs]) end
    #hsetnx(key, field, value)  ⇒ Boolean 
  
Set the value of a hash field, only if the field does not exist.
# File 'lib/redis/commands/hashes.rb', line 35
def hsetnx(key, field, value) send_command([:hsetnx, key, field, value], &Boolify) end
    #httl(key, *fields)  ⇒ Array<Integer> 
  
Returns the time to live in seconds for one or more fields.
See https://redis.io/docs/latest/commands/httl/#return-information for array reply.
# File 'lib/redis/commands/hashes.rb', line 285
def httl(key, *fields) send_command([:httl, key, 'FIELDS', fields.length, *fields]) end
    #hvals(key)  ⇒ Array<String> 
  
Get all the values in a hash.
# File 'lib/redis/commands/hashes.rb', line 202
def hvals(key) send_command([:hvals, key]) end
    #mapped_hmget(key, *fields)  ⇒ Hash 
  
Get the values of all the given hash fields.
# File 'lib/redis/commands/hashes.rb', line 105
def mapped_hmget(key, *fields) fields.flatten!(1) hmget(key, fields) do |reply| if reply.is_a?(Array) Hash[fields.zip(reply)] else reply end end end
    #mapped_hmset(key, hash)  ⇒ String 
  
Set one or more hash values.
# File 'lib/redis/commands/hashes.rb', line 65
def mapped_hmset(key, hash) hmset(key, hash.flatten) end