Module: Redis::Commands::Hashes
- Included in:
- Redis::Commands
- Defined in:
- lib/redis/commands/hashes.rb
Instance Method Summary collapse
- 
  
    
      #hdel(key, *fields)  ⇒ Integer 
    
    
  
  
  
  
  
  
  
  
  
    Delete one or more hash fields. 
- 
  
    
      #hexists(key, field)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    Determine if a hash field exists. 
- 
  
    
      #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. 
- 
  
    
      #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.
| 156 157 158 159 | # 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.
| 166 167 168 | # File 'lib/redis/commands/hashes.rb', line 166 def hexists(key, field) send_command([:hexists, key, field], &Boolify) end | 
#hget(key, field) ⇒ String
Get the value of a hash field.
| 74 75 76 | # 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.
| 210 211 212 | # 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.
| 176 177 178 | # 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.
| 186 187 188 | # 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.
| 194 195 196 | # 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.
| 10 11 12 | # 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.
| 89 90 91 92 | # 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.
| 50 51 52 | # 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.
| 138 139 140 141 142 143 144 145 146 147 148 149 | # 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]>
Scan a hash
See the Redis Server HSCAN documentation for further details
| 227 228 229 230 231 | # 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
Scan a hash
See the Redis Server HSCAN documentation for further details
| 246 247 248 249 250 251 252 253 254 255 | # 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.
| 23 24 25 26 27 | # 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.
| 35 36 37 | # File 'lib/redis/commands/hashes.rb', line 35 def hsetnx(key, field, value) send_command([:hsetnx, key, field, value], &Boolify) end | 
#hvals(key) ⇒ Array<String>
Get all the values in a hash.
| 202 203 204 | # 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.
| 105 106 107 108 109 110 111 112 113 114 | # 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.
| 65 66 67 | # File 'lib/redis/commands/hashes.rb', line 65 def mapped_hmset(key, hash) hmset(key, hash.flatten) end |