valkey/src/commands/bzmpop.json

121 lines
3.8 KiB
JSON

{
"BZMPOP": {
"summary": "Removes and returns a member by score from one or more sorted sets. Blocks until a member is available otherwise. Deletes the sorted set if the last element was popped.",
"complexity": "O(K) + O(M*log(N)) where K is the number of provided keys, N being the number of elements in the sorted set, and M being the number of elements popped.",
"group": "sorted_set",
"since": "7.0.0",
"arity": -5,
"function": "bzmpopCommand",
"get_keys_function": "blmpopGetKeys",
"command_flags": [
"WRITE",
"BLOCKING"
],
"acl_categories": [
"BLOCKING",
"SLOW",
"SORTEDSET",
"WRITE"
],
"key_specs": [
{
"flags": [
"RW",
"ACCESS",
"DELETE"
],
"begin_search": {
"index": {
"pos": 2
}
},
"find_keys": {
"keynum": {
"keynumidx": 0,
"firstkey": 1,
"step": 1
}
}
}
],
"reply_schema": {
"oneOf": [
{
"description": "Timeout reached and no elements were popped.",
"type": "null"
},
{
"description": "The keyname and the popped members.",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": [
{
"description": "Keyname",
"type": "string"
},
{
"description": "Popped members and their scores.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": [
{
"description": "Member",
"type": "string"
},
{
"description": "Score",
"type": "number"
}
]
}
}
]
}
]
},
"arguments": [
{
"name": "timeout",
"type": "double"
},
{
"name": "numkeys",
"type": "integer"
},
{
"name": "key",
"type": "key",
"key_spec_index": 0,
"multiple": true
},
{
"name": "where",
"type": "oneof",
"arguments": [
{
"name": "min",
"type": "pure-token",
"token": "MIN"
},
{
"name": "max",
"type": "pure-token",
"token": "MAX"
}
]
},
{
"token": "COUNT",
"name": "count",
"type": "integer",
"optional": true
}
]
}
}