herodb/instructions/redis_hset_functions.md
2025-08-16 10:53:48 +02:00

3.2 KiB

🔑 Redis HSET and Related Hash Commands

1. HSET

  • Purpose: Set the value of one or more fields in a hash.

  • Syntax:

    HSET key field value [field value ...]
    
  • Return:

    • Integer: number of fields that were newly added.
  • RESP Protocol:

    *4
    $4
    HSET
    $3
    key
    $5
    field
    $5
    value
    

    (If multiple field-value pairs: *6, *8, etc.)


2. HSETNX

  • Purpose: Set the value of a hash field only if it does not exist.

  • Syntax:

    HSETNX key field value
    
  • Return:

    • 1 if field was set.
    • 0 if field already exists.
  • RESP Protocol:

    *4
    $6
    HSETNX
    $3
    key
    $5
    field
    $5
    value
    

3. HGET

  • Purpose: Get the value of a hash field.

  • Syntax:

    HGET key field
    
  • Return:

    • Bulk string (value) or nil if field does not exist.
  • RESP Protocol:

    *3
    $4
    HGET
    $3
    key
    $5
    field
    

4. HGETALL

  • Purpose: Get all fields and values in a hash.

  • Syntax:

    HGETALL key
    
  • Return:

    • Array of [field1, value1, field2, value2, ...].
  • RESP Protocol:

    *2
    $7
    HGETALL
    $3
    key
    

5. HMSET (⚠️ Deprecated, use HSET)

  • Purpose: Set multiple field-value pairs.

  • Syntax:

    HMSET key field value [field value ...]
    
  • Return:

    • Always OK.
  • RESP Protocol:

    *6
    $5
    HMSET
    $3
    key
    $5
    field
    $5
    value
    $5
    field2
    $5
    value2
    

6. HMGET

  • Purpose: Get values of multiple fields.

  • Syntax:

    HMGET key field [field ...]
    
  • Return:

    • Array of values (bulk strings or nils).
  • RESP Protocol:

    *4
    $5
    HMGET
    $3
    key
    $5
    field1
    $5
    field2
    

7. HDEL

  • Purpose: Delete one or more fields from a hash.

  • Syntax:

    HDEL key field [field ...]
    
  • Return:

    • Integer: number of fields removed.
  • RESP Protocol:

    *3
    $4
    HDEL
    $3
    key
    $5
    field
    

8. HEXISTS

  • Purpose: Check if a field exists.

  • Syntax:

    HEXISTS key field
    
  • Return:

    • 1 if exists, 0 if not.
  • RESP Protocol:

    *3
    $7
    HEXISTS
    $3
    key
    $5
    field
    

9. HKEYS

  • Purpose: Get all field names in a hash.

  • Syntax:

    HKEYS key
    
  • Return:

    • Array of field names.
  • RESP Protocol:

    *2
    $5
    HKEYS
    $3
    key
    

10. HVALS

  • Purpose: Get all values in a hash.

  • Syntax:

    HVALS key
    
  • Return:

    • Array of values.
  • RESP Protocol:

    *2
    $5
    HVALS
    $3
    key
    

11. HLEN

  • Purpose: Get number of fields in a hash.

  • Syntax:

    HLEN key
    
  • Return:

    • Integer: number of fields.
  • RESP Protocol:

    *2
    $4
    HLEN
    $3
    key
    

12. HSCAN

  • Purpose: Iterate fields/values of a hash (cursor-based scan).

  • Syntax:

    HSCAN key cursor [MATCH pattern] [COUNT count]
    
  • Return:

    • Array: [new-cursor, [field1, value1, ...]]
  • RESP Protocol:

    *3
    $5
    HSCAN
    $3
    key
    $1
    0