mirror of https://mirror.osredm.com/root/redis.git
Fix reply schema for hfe related commands (#13238)
This commit is contained in:
parent
c33c91dbce
commit
03cd525ffa
|
@ -46,24 +46,26 @@
|
|||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "Specified NX | XX | GT | LT condition not met",
|
||||
"const": 0
|
||||
},
|
||||
{
|
||||
"description": "Expiration time was set or updated.",
|
||||
"const": 1
|
||||
},
|
||||
{
|
||||
"description": "Field deleted because the specified expiration time is in the past.",
|
||||
"const": 2
|
||||
}
|
||||
]
|
||||
"items": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "Specified NX | XX | GT | LT condition not met",
|
||||
"const": 0
|
||||
},
|
||||
{
|
||||
"description": "Expiration time was set or updated.",
|
||||
"const": 1
|
||||
},
|
||||
{
|
||||
"description": "Field deleted because the specified expiration time is in the past.",
|
||||
"const": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -46,24 +46,26 @@
|
|||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "Specified NX | XX | GT | LT condition not met",
|
||||
"const": 0
|
||||
},
|
||||
{
|
||||
"description": "Expiration time was set or updated.",
|
||||
"const": 1
|
||||
},
|
||||
{
|
||||
"description": "Field deleted because the specified expiration time is in the past.",
|
||||
"const": 2
|
||||
}
|
||||
]
|
||||
"items": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "Specified NX | XX | GT | LT condition not met",
|
||||
"const": 0
|
||||
},
|
||||
{
|
||||
"description": "Expiration time was set or updated.",
|
||||
"const": 1
|
||||
},
|
||||
{
|
||||
"description": "Field deleted because the specified expiration time is in the past.",
|
||||
"const": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -1,83 +1,85 @@
|
|||
{
|
||||
"HEXPIRETIME": {
|
||||
"summary": "Returns the expiration time of a hash field as a Unix timestamp, in seconds.",
|
||||
"complexity": "O(N) where N is the number of arguments to the command",
|
||||
"group": "hash",
|
||||
"since": "8.0.0",
|
||||
"arity": -4,
|
||||
"function": "hexpiretimeCommand",
|
||||
"history": [],
|
||||
"command_flags": [
|
||||
"READONLY",
|
||||
"FAST"
|
||||
],
|
||||
"acl_categories": [
|
||||
"HASH"
|
||||
],
|
||||
"key_specs": [
|
||||
{
|
||||
"flags": [
|
||||
"RO",
|
||||
"ACCESS"
|
||||
],
|
||||
"begin_search": {
|
||||
"index": {
|
||||
"pos": 1
|
||||
"summary": "Returns the expiration time of a hash field as a Unix timestamp, in seconds.",
|
||||
"complexity": "O(N) where N is the number of arguments to the command",
|
||||
"group": "hash",
|
||||
"since": "8.0.0",
|
||||
"arity": -4,
|
||||
"function": "hexpiretimeCommand",
|
||||
"history": [],
|
||||
"command_flags": [
|
||||
"READONLY",
|
||||
"FAST"
|
||||
],
|
||||
"acl_categories": [
|
||||
"HASH"
|
||||
],
|
||||
"key_specs": [
|
||||
{
|
||||
"flags": [
|
||||
"RO",
|
||||
"ACCESS"
|
||||
],
|
||||
"begin_search": {
|
||||
"index": {
|
||||
"pos": 1
|
||||
}
|
||||
},
|
||||
"find_keys": {
|
||||
"range": {
|
||||
"lastkey": 0,
|
||||
"step": 1,
|
||||
"limit": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"find_keys": {
|
||||
"range": {
|
||||
"lastkey": 0,
|
||||
"step": 1,
|
||||
"limit": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"reply_schema": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "Key does not exist.",
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"description": "Array of results",
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "The field exists but has no associated expire.",
|
||||
"const": -1
|
||||
},
|
||||
{
|
||||
"description": "Expiration Unix timestamp in seconds.",
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
}
|
||||
],
|
||||
"reply_schema": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "Key does not exist.",
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"description": "Array of results",
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "The field exists but has no associated expire.",
|
||||
"const": -1
|
||||
},
|
||||
{
|
||||
"description": "Expiration Unix timestamp in seconds.",
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "key",
|
||||
"key_spec_index": 0
|
||||
},
|
||||
{
|
||||
"name": "numfields",
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "field",
|
||||
"type": "string",
|
||||
"multiple": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "key",
|
||||
"key_spec_index": 0
|
||||
},
|
||||
{
|
||||
"name": "numfields",
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "field",
|
||||
"type": "string",
|
||||
"multiple": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,82 +1,84 @@
|
|||
{
|
||||
"HPERSIST": {
|
||||
"summary": "Removes the expiration time for each specified field",
|
||||
"complexity": "O(N) where N is the number of arguments to the command",
|
||||
"group": "hash",
|
||||
"since": "8.0.0",
|
||||
"arity": -4,
|
||||
"function": "hpersistCommand",
|
||||
"history": [],
|
||||
"command_flags": [
|
||||
"READONLY",
|
||||
"FAST"
|
||||
],
|
||||
"acl_categories": [
|
||||
"HASH"
|
||||
],
|
||||
"key_specs": [
|
||||
{
|
||||
"flags": [
|
||||
"RO",
|
||||
"ACCESS"
|
||||
],
|
||||
"begin_search": {
|
||||
"index": {
|
||||
"pos": 1
|
||||
"summary": "Removes the expiration time for each specified field",
|
||||
"complexity": "O(N) where N is the number of arguments to the command",
|
||||
"group": "hash",
|
||||
"since": "8.0.0",
|
||||
"arity": -4,
|
||||
"function": "hpersistCommand",
|
||||
"history": [],
|
||||
"command_flags": [
|
||||
"READONLY",
|
||||
"FAST"
|
||||
],
|
||||
"acl_categories": [
|
||||
"HASH"
|
||||
],
|
||||
"key_specs": [
|
||||
{
|
||||
"flags": [
|
||||
"RO",
|
||||
"ACCESS"
|
||||
],
|
||||
"begin_search": {
|
||||
"index": {
|
||||
"pos": 1
|
||||
}
|
||||
},
|
||||
"find_keys": {
|
||||
"range": {
|
||||
"lastkey": 0,
|
||||
"step": 1,
|
||||
"limit": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"find_keys": {
|
||||
"range": {
|
||||
"lastkey": 0,
|
||||
"step": 1,
|
||||
"limit": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"reply_schema": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "Key does not exist.",
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"description": "Array of results",
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "The field exists but has no associated expire.",
|
||||
"const": -1
|
||||
},
|
||||
{
|
||||
"description": "Expiration time was removed",
|
||||
"const": 1
|
||||
}
|
||||
],
|
||||
"reply_schema": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "Key does not exist.",
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"description": "Array of results",
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "The field exists but has no associated expire.",
|
||||
"const": -1
|
||||
},
|
||||
{
|
||||
"description": "Expiration time was removed",
|
||||
"const": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "key",
|
||||
"key_spec_index": 0
|
||||
},
|
||||
{
|
||||
"name": "numfields",
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "field",
|
||||
"type": "string",
|
||||
"multiple": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "key",
|
||||
"key_spec_index": 0
|
||||
},
|
||||
{
|
||||
"name": "numfields",
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "field",
|
||||
"type": "string",
|
||||
"multiple": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,24 +46,26 @@
|
|||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "Specified NX | XX | GT | LT condition not met",
|
||||
"const": 0
|
||||
},
|
||||
{
|
||||
"description": "Expiration time was set or updated.",
|
||||
"const": 1
|
||||
},
|
||||
{
|
||||
"description": "Field deleted because the specified expiration time is in the past.",
|
||||
"const": 2
|
||||
}
|
||||
]
|
||||
"items": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "Specified NX | XX | GT | LT condition not met",
|
||||
"const": 0
|
||||
},
|
||||
{
|
||||
"description": "Expiration time was set or updated.",
|
||||
"const": 1
|
||||
},
|
||||
{
|
||||
"description": "Field deleted because the specified expiration time is in the past.",
|
||||
"const": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -46,24 +46,26 @@
|
|||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "Specified NX | XX | GT | LT condition not met",
|
||||
"const": 0
|
||||
},
|
||||
{
|
||||
"description": "Expiration time was set or updated.",
|
||||
"const": 1
|
||||
},
|
||||
{
|
||||
"description": "Field deleted because the specified expiration time is in the past.",
|
||||
"const": 2
|
||||
}
|
||||
]
|
||||
"items": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "Specified NX | XX | GT | LT condition not met",
|
||||
"const": 0
|
||||
},
|
||||
{
|
||||
"description": "Expiration time was set or updated.",
|
||||
"const": 1
|
||||
},
|
||||
{
|
||||
"description": "Field deleted because the specified expiration time is in the past.",
|
||||
"const": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -1,83 +1,85 @@
|
|||
{
|
||||
"HPEXPIRETIME": {
|
||||
"summary": "Returns the expiration time of a hash field as a Unix timestamp, in msec.",
|
||||
"complexity": "O(N) where N is the number of arguments to the command",
|
||||
"group": "hash",
|
||||
"since": "8.0.0",
|
||||
"arity": -4,
|
||||
"function": "hpexpiretimeCommand",
|
||||
"history": [],
|
||||
"command_flags": [
|
||||
"READONLY",
|
||||
"FAST"
|
||||
],
|
||||
"acl_categories": [
|
||||
"HASH"
|
||||
],
|
||||
"key_specs": [
|
||||
{
|
||||
"flags": [
|
||||
"RO",
|
||||
"ACCESS"
|
||||
],
|
||||
"begin_search": {
|
||||
"index": {
|
||||
"pos": 1
|
||||
"summary": "Returns the expiration time of a hash field as a Unix timestamp, in msec.",
|
||||
"complexity": "O(N) where N is the number of arguments to the command",
|
||||
"group": "hash",
|
||||
"since": "8.0.0",
|
||||
"arity": -4,
|
||||
"function": "hpexpiretimeCommand",
|
||||
"history": [],
|
||||
"command_flags": [
|
||||
"READONLY",
|
||||
"FAST"
|
||||
],
|
||||
"acl_categories": [
|
||||
"HASH"
|
||||
],
|
||||
"key_specs": [
|
||||
{
|
||||
"flags": [
|
||||
"RO",
|
||||
"ACCESS"
|
||||
],
|
||||
"begin_search": {
|
||||
"index": {
|
||||
"pos": 1
|
||||
}
|
||||
},
|
||||
"find_keys": {
|
||||
"range": {
|
||||
"lastkey": 0,
|
||||
"step": 1,
|
||||
"limit": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"find_keys": {
|
||||
"range": {
|
||||
"lastkey": 0,
|
||||
"step": 1,
|
||||
"limit": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"reply_schema": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "Key does not exist.",
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"description": "The keyname, popped member, and its score.",
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "The field exists but has no associated expire.",
|
||||
"const": -1
|
||||
},
|
||||
{
|
||||
"description": "Expiration Unix timestamp in milliseconds.",
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
}
|
||||
],
|
||||
"reply_schema": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "Key does not exist.",
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"description": "The keyname, popped member, and its score.",
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "The field exists but has no associated expire.",
|
||||
"const": -1
|
||||
},
|
||||
{
|
||||
"description": "Expiration Unix timestamp in milliseconds.",
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "key",
|
||||
"key_spec_index": 0
|
||||
},
|
||||
{
|
||||
"name": "numfields",
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "field",
|
||||
"type": "string",
|
||||
"multiple": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "key",
|
||||
"key_spec_index": 0
|
||||
},
|
||||
{
|
||||
"name": "numfields",
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "field",
|
||||
"type": "string",
|
||||
"multiple": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,83 +1,85 @@
|
|||
{
|
||||
"HPTTL": {
|
||||
"summary": "Returns the TTL in milliseconds of a hash field.",
|
||||
"complexity": "O(N) where N is the number of arguments to the command",
|
||||
"group": "hash",
|
||||
"since": "8.0.0",
|
||||
"arity": -4,
|
||||
"function": "hpttlCommand",
|
||||
"history": [],
|
||||
"command_flags": [
|
||||
"READONLY",
|
||||
"FAST"
|
||||
],
|
||||
"acl_categories": [
|
||||
"HASH"
|
||||
],
|
||||
"key_specs": [
|
||||
{
|
||||
"flags": [
|
||||
"RO",
|
||||
"ACCESS"
|
||||
],
|
||||
"begin_search": {
|
||||
"index": {
|
||||
"pos": 1
|
||||
"summary": "Returns the TTL in milliseconds of a hash field.",
|
||||
"complexity": "O(N) where N is the number of arguments to the command",
|
||||
"group": "hash",
|
||||
"since": "8.0.0",
|
||||
"arity": -4,
|
||||
"function": "hpttlCommand",
|
||||
"history": [],
|
||||
"command_flags": [
|
||||
"READONLY",
|
||||
"FAST"
|
||||
],
|
||||
"acl_categories": [
|
||||
"HASH"
|
||||
],
|
||||
"key_specs": [
|
||||
{
|
||||
"flags": [
|
||||
"RO",
|
||||
"ACCESS"
|
||||
],
|
||||
"begin_search": {
|
||||
"index": {
|
||||
"pos": 1
|
||||
}
|
||||
},
|
||||
"find_keys": {
|
||||
"range": {
|
||||
"lastkey": 0,
|
||||
"step": 1,
|
||||
"limit": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"find_keys": {
|
||||
"range": {
|
||||
"lastkey": 0,
|
||||
"step": 1,
|
||||
"limit": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"reply_schema": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "Key does not exist.",
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"description": "The keyname, popped member, and its score.",
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "The field exists but has no associated expire.",
|
||||
"const": -1
|
||||
},
|
||||
{
|
||||
"description": "TTL in milliseconds.",
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
}
|
||||
],
|
||||
"reply_schema": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "Key does not exist.",
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"description": "The keyname, popped member, and its score.",
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "The field exists but has no associated expire.",
|
||||
"const": -1
|
||||
},
|
||||
{
|
||||
"description": "TTL in milliseconds.",
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "key",
|
||||
"key_spec_index": 0
|
||||
},
|
||||
{
|
||||
"name": "numfields",
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "field",
|
||||
"type": "string",
|
||||
"multiple": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "key",
|
||||
"key_spec_index": 0
|
||||
},
|
||||
{
|
||||
"name": "numfields",
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "field",
|
||||
"type": "string",
|
||||
"multiple": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,83 +1,85 @@
|
|||
{
|
||||
"HTTL": {
|
||||
"summary": "Returns the TTL in seconds of a hash field.",
|
||||
"complexity": "O(N) where N is the number of arguments to the command",
|
||||
"group": "hash",
|
||||
"since": "8.0.0",
|
||||
"arity": -4,
|
||||
"function": "httlCommand",
|
||||
"history": [],
|
||||
"command_flags": [
|
||||
"READONLY",
|
||||
"FAST"
|
||||
],
|
||||
"acl_categories": [
|
||||
"HASH"
|
||||
],
|
||||
"key_specs": [
|
||||
{
|
||||
"flags": [
|
||||
"RO",
|
||||
"ACCESS"
|
||||
],
|
||||
"begin_search": {
|
||||
"index": {
|
||||
"pos": 1
|
||||
"summary": "Returns the TTL in seconds of a hash field.",
|
||||
"complexity": "O(N) where N is the number of arguments to the command",
|
||||
"group": "hash",
|
||||
"since": "8.0.0",
|
||||
"arity": -4,
|
||||
"function": "httlCommand",
|
||||
"history": [],
|
||||
"command_flags": [
|
||||
"READONLY",
|
||||
"FAST"
|
||||
],
|
||||
"acl_categories": [
|
||||
"HASH"
|
||||
],
|
||||
"key_specs": [
|
||||
{
|
||||
"flags": [
|
||||
"RO",
|
||||
"ACCESS"
|
||||
],
|
||||
"begin_search": {
|
||||
"index": {
|
||||
"pos": 1
|
||||
}
|
||||
},
|
||||
"find_keys": {
|
||||
"range": {
|
||||
"lastkey": 0,
|
||||
"step": 1,
|
||||
"limit": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"find_keys": {
|
||||
"range": {
|
||||
"lastkey": 0,
|
||||
"step": 1,
|
||||
"limit": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"reply_schema": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "Key does not exist.",
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"description": "Array of results",
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "The field exists but has no associated expire.",
|
||||
"const": -1
|
||||
},
|
||||
{
|
||||
"description": "TTL in seconds.",
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
}
|
||||
],
|
||||
"reply_schema": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "Key does not exist.",
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"description": "Array of results",
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 4294967295,
|
||||
"items": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "The field does not exist.",
|
||||
"const": -2
|
||||
},
|
||||
{
|
||||
"description": "The field exists but has no associated expire.",
|
||||
"const": -1
|
||||
},
|
||||
{
|
||||
"description": "TTL in seconds.",
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "key",
|
||||
"key_spec_index": 0
|
||||
},
|
||||
{
|
||||
"name": "numfields",
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "field",
|
||||
"type": "string",
|
||||
"multiple": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "key",
|
||||
"key_spec_index": 0
|
||||
},
|
||||
{
|
||||
"name": "numfields",
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "field",
|
||||
"type": "string",
|
||||
"multiple": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -88,41 +88,63 @@ start_server {tags {"external:skip needs:debug"}} {
|
|||
# Currently listpack doesn't support HFE
|
||||
r config set hash-max-listpack-entries 0
|
||||
|
||||
test {HPEXPIRE - Test 'NX' flag} {
|
||||
test {HPEXPIRE(AT) - Test 'NX' flag} {
|
||||
r del myhash
|
||||
r hset myhash field1 value1 field2 value2 field3 value3
|
||||
assert_equal [r hpexpire myhash 1000 NX 1 field1] [list $E_OK]
|
||||
assert_equal [r hpexpire myhash 1000 NX 2 field1 field2] [list $E_FAIL $E_OK]
|
||||
|
||||
r del myhash
|
||||
r hset myhash field1 value1 field2 value2 field3 value3
|
||||
assert_equal [r hpexpireat myhash [expr {([clock seconds]+1000)*1000}] NX 1 field1] [list $E_OK]
|
||||
assert_equal [r hpexpireat myhash [expr {([clock seconds]+1000)*1000}] NX 2 field1 field2] [list $E_FAIL $E_OK]
|
||||
}
|
||||
|
||||
test {HPEXPIRE - Test 'XX' flag} {
|
||||
test {HPEXPIRE(AT) - Test 'XX' flag} {
|
||||
r del myhash
|
||||
r hset myhash field1 value1 field2 value2 field3 value3
|
||||
assert_equal [r hpexpire myhash 1000 NX 2 field1 field2] [list $E_OK $E_OK]
|
||||
assert_equal [r hpexpire myhash 1000 XX 2 field1 field3] [list $E_OK $E_FAIL]
|
||||
|
||||
r del myhash
|
||||
r hset myhash field1 value1 field2 value2 field3 value3
|
||||
assert_equal [r hpexpireat myhash [expr {([clock seconds]+1000)*1000}] NX 2 field1 field2] [list $E_OK $E_OK]
|
||||
assert_equal [r hpexpireat myhash [expr {([clock seconds]+1000)*1000}] XX 2 field1 field3] [list $E_OK $E_FAIL]
|
||||
}
|
||||
|
||||
test {HPEXPIRE - Test 'GT' flag} {
|
||||
test {HPEXPIRE(AT) - Test 'GT' flag} {
|
||||
r del myhash
|
||||
r hset myhash field1 value1 field2 value2
|
||||
assert_equal [r hpexpire myhash 1000 NX 1 field1] [list $E_OK]
|
||||
assert_equal [r hpexpire myhash 2000 NX 1 field2] [list $E_OK]
|
||||
assert_equal [r hpexpire myhash 1500 GT 2 field1 field2] [list $E_OK $E_FAIL]
|
||||
|
||||
r del myhash
|
||||
r hset myhash field1 value1 field2 value2
|
||||
assert_equal [r hpexpireat myhash [expr {([clock seconds]+1000)*1000}] NX 1 field1] [list $E_OK]
|
||||
assert_equal [r hpexpireat myhash [expr {([clock seconds]+2000)*1000}] NX 1 field2] [list $E_OK]
|
||||
assert_equal [r hpexpireat myhash [expr {([clock seconds]+1500)*1000}] GT 2 field1 field2] [list $E_OK $E_FAIL]
|
||||
}
|
||||
|
||||
test {HPEXPIRE - Test 'LT' flag} {
|
||||
test {HPEXPIRE(AT) - Test 'LT' flag} {
|
||||
r del myhash
|
||||
r hset myhash field1 value1 field2 value2
|
||||
assert_equal [r hpexpire myhash 1000 NX 1 field1] [list $E_OK]
|
||||
assert_equal [r hpexpire myhash 2000 NX 1 field2] [list $E_OK]
|
||||
assert_equal [r hpexpire myhash 1500 LT 2 field1 field2] [list $E_FAIL $E_OK]
|
||||
|
||||
r del myhash
|
||||
r hset myhash field1 value1 field2 value2
|
||||
assert_equal [r hpexpireat myhash [expr {([clock seconds]+1000)*1000}] NX 1 field1] [list $E_OK]
|
||||
assert_equal [r hpexpireat myhash [expr {([clock seconds]+2000)*1000}] NX 1 field2] [list $E_OK]
|
||||
assert_equal [r hpexpireat myhash [expr {([clock seconds]+1500)*1000}] LT 2 field1 field2] [list $E_FAIL $E_OK]
|
||||
}
|
||||
|
||||
test {HPEXPIREAT - field not exists or TTL is in the past} {
|
||||
r del myhash
|
||||
r hset myhash f1 v1 f2 v2 f4 v4
|
||||
r hexpire myhash 1000 NX 1 f4
|
||||
assert_equal [r hexpireat myhash [expr {[clock seconds] - 1}] NX 4 f1 f2 f3 f4] "$E_DELETED $E_DELETED $E_NO_FIELD $E_FAIL"
|
||||
assert_equal [r hpexpireat myhash [expr {([clock seconds]-1)*1000}] NX 4 f1 f2 f3 f4] "$E_DELETED $E_DELETED $E_NO_FIELD $E_FAIL"
|
||||
assert_equal [r hexists myhash field1] 0
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue