...
This commit is contained in:
		
							
								
								
									
										307
									
								
								specs/backgroundinfo/redis_hset_functions.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										307
									
								
								specs/backgroundinfo/redis_hset_functions.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,307 @@
 | 
			
		||||
 | 
			
		||||
# 🔑 Redis `HSET` and Related Hash Commands
 | 
			
		||||
 | 
			
		||||
## 1. `HSET`
 | 
			
		||||
 | 
			
		||||
* **Purpose**: Set the value of one or more fields in a hash.
 | 
			
		||||
* **Syntax**:
 | 
			
		||||
 | 
			
		||||
  ```bash
 | 
			
		||||
  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**:
 | 
			
		||||
 | 
			
		||||
  ```bash
 | 
			
		||||
  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**:
 | 
			
		||||
 | 
			
		||||
  ```bash
 | 
			
		||||
  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**:
 | 
			
		||||
 | 
			
		||||
  ```bash
 | 
			
		||||
  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**:
 | 
			
		||||
 | 
			
		||||
  ```bash
 | 
			
		||||
  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**:
 | 
			
		||||
 | 
			
		||||
  ```bash
 | 
			
		||||
  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**:
 | 
			
		||||
 | 
			
		||||
  ```bash
 | 
			
		||||
  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**:
 | 
			
		||||
 | 
			
		||||
  ```bash
 | 
			
		||||
  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**:
 | 
			
		||||
 | 
			
		||||
  ```bash
 | 
			
		||||
  HKEYS key
 | 
			
		||||
  ```
 | 
			
		||||
* **Return**:
 | 
			
		||||
 | 
			
		||||
  * Array of field names.
 | 
			
		||||
* **RESP Protocol**:
 | 
			
		||||
 | 
			
		||||
  ```
 | 
			
		||||
  *2
 | 
			
		||||
  $5
 | 
			
		||||
  HKEYS
 | 
			
		||||
  $3
 | 
			
		||||
  key
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## 10. `HVALS`
 | 
			
		||||
 | 
			
		||||
* **Purpose**: Get all values in a hash.
 | 
			
		||||
* **Syntax**:
 | 
			
		||||
 | 
			
		||||
  ```bash
 | 
			
		||||
  HVALS key
 | 
			
		||||
  ```
 | 
			
		||||
* **Return**:
 | 
			
		||||
 | 
			
		||||
  * Array of values.
 | 
			
		||||
* **RESP Protocol**:
 | 
			
		||||
 | 
			
		||||
  ```
 | 
			
		||||
  *2
 | 
			
		||||
  $5
 | 
			
		||||
  HVALS
 | 
			
		||||
  $3
 | 
			
		||||
  key
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## 11. `HLEN`
 | 
			
		||||
 | 
			
		||||
* **Purpose**: Get number of fields in a hash.
 | 
			
		||||
* **Syntax**:
 | 
			
		||||
 | 
			
		||||
  ```bash
 | 
			
		||||
  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**:
 | 
			
		||||
 | 
			
		||||
  ```bash
 | 
			
		||||
  HSCAN key cursor [MATCH pattern] [COUNT count]
 | 
			
		||||
  ```
 | 
			
		||||
* **Return**:
 | 
			
		||||
 | 
			
		||||
  * Array: `[new-cursor, [field1, value1, ...]]`
 | 
			
		||||
* **RESP Protocol**:
 | 
			
		||||
 | 
			
		||||
  ```
 | 
			
		||||
  *3
 | 
			
		||||
  $5
 | 
			
		||||
  HSCAN
 | 
			
		||||
  $3
 | 
			
		||||
  key
 | 
			
		||||
  $1
 | 
			
		||||
  0
 | 
			
		||||
  ```
 | 
			
		||||
		Reference in New Issue
	
	Block a user