diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fd0c5cf6..765c0dde 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -102,6 +102,62 @@ jobs: working-directory: clients/ember-go run: go test ./... + msrv: + name: msrv (1.93) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: '1.93' + - uses: Swatinem/rust-cache@v2 + - uses: arduino/setup-protoc@v3 + with: + version: '28.x' + repo-token: ${{ secrets.GITHUB_TOKEN }} + - name: check + run: cargo check --workspace --features protobuf,grpc + + python-client: + name: python client + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + - name: install + working-directory: clients/ember-py + run: pip install -e ".[dev]" + - name: test + working-directory: clients/ember-py + run: pytest -v + + ts-client: + name: ts client + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: '22' + cache: npm + cache-dependency-path: clients/ember-ts/package-lock.json + - name: install + working-directory: clients/ember-ts + run: npm ci + - name: build + working-directory: clients/ember-ts + run: npm run build + + proto-drift: + name: client proto drift + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: check clients against canonical proto + run: ./scripts/check-client-drift.sh + security: name: security runs-on: ubuntu-latest diff --git a/clients/ember-py/Makefile b/clients/ember-py/Makefile index 4aed4af3..b5e31198 100644 --- a/clients/ember-py/Makefile +++ b/clients/ember-py/Makefile @@ -7,8 +7,10 @@ proto-gen: --proto_path=../../proto \ ember/v1/ember.proto # fix generated import path: ember.v1 -> ember.proto.ember.v1 - sed -i '' 's/from ember\.v1 import/from ember.proto.ember.v1 import/' \ + # (sed -i.bak works with both GNU and BSD sed; bare -i '' is macOS-only) + sed -i.bak 's/from ember\.v1 import/from ember.proto.ember.v1 import/' \ ember/proto/ember/v1/ember_pb2_grpc.py + rm -f ember/proto/ember/v1/ember_pb2_grpc.py.bak test: pytest -v diff --git a/clients/ember-py/ember/proto/ember/v1/ember_pb2.py b/clients/ember-py/ember/proto/ember/v1/ember_pb2.py index 0f901a80..3bbdd6a7 100644 --- a/clients/ember-py/ember/proto/ember/v1/ember_pb2.py +++ b/clients/ember-py/ember/proto/ember/v1/ember_pb2.py @@ -2,7 +2,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # NO CHECKED-IN PROTOBUF GENCODE # source: ember/v1/ember.proto -# Protobuf Python Version: 6.31.1 +# Protobuf Python Version: 6.33.5 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -12,8 +12,8 @@ _runtime_version.ValidateProtobufRuntimeVersion( _runtime_version.Domain.PUBLIC, 6, - 31, - 1, + 33, + 5, '', 'ember/v1/ember.proto' ) @@ -24,7 +24,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x65mber/v1/ember.proto\x12\x08\x65mber.v1\"\x1c\n\x0bIntResponse\x12\r\n\x05value\x18\x01 \x01(\x03\"\x1d\n\x0c\x42oolResponse\x12\r\n\x05value\x18\x01 \x01(\x08\"\x1e\n\rFloatResponse\x12\r\n\x05value\x18\x01 \x01(\t\" \n\x0eStatusResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"#\n\x11\x42oolArrayResponse\x12\x0e\n\x06values\x18\x01 \x03(\x08\"\x19\n\nGetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"+\n\x0bGetResponse\x12\x12\n\x05value\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x08\n\x06_value\"o\n\nSetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\x16\n\x0e\x65xpire_seconds\x18\x03 \x01(\x04\x12\x15\n\rexpire_millis\x18\x04 \x01(\x04\x12\n\n\x02nx\x18\x05 \x01(\x08\x12\n\n\x02xx\x18\x06 \x01(\x08\"\x19\n\x0bSetResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\"\x1a\n\nDelRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"\x1e\n\x0b\x44\x65lResponse\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x03\"\x1b\n\x0bMGetRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"7\n\x0cMGetResponse\x12\'\n\x06values\x18\x01 \x03(\x0b\x32\x17.ember.v1.OptionalValue\"-\n\rOptionalValue\x12\x12\n\x05value\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x08\n\x06_value\"0\n\x0bMSetRequest\x12!\n\x05pairs\x18\x01 \x03(\x0b\x32\x12.ember.v1.KeyValue\"&\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x0e\n\x0cMSetResponse\"\x1a\n\x0bIncrRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"+\n\rIncrByRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x02 \x01(\x03\"+\n\rDecrByRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x02 \x01(\x03\"0\n\x12IncrByFloatRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x02 \x01(\x01\"+\n\rAppendRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x1c\n\rStrlenRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1c\n\rGetDelRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"[\n\x0cGetExRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x16\n\x0e\x65xpire_seconds\x18\x02 \x01(\x04\x12\x15\n\rexpire_millis\x18\x03 \x01(\x04\x12\x0f\n\x07persist\x18\x04 \x01(\x08\":\n\x0fGetRangeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\"=\n\x0fSetRangeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x03\x12\r\n\x05value\x18\x03 \x01(\x0c\"\x1d\n\rExistsRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"-\n\rExpireRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07seconds\x18\x02 \x01(\x04\"3\n\x0ePExpireRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x14\n\x0cmilliseconds\x18\x02 \x01(\x04\"\x1d\n\x0ePersistRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x19\n\nTtlRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1a\n\x0bPTtlRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1c\n\x0bTtlResponse\x12\r\n\x05value\x18\x01 \x01(\x03\"\x1a\n\x0bTypeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"!\n\x0cTypeResponse\x12\x11\n\ttype_name\x18\x01 \x01(\t\"\x1e\n\x0bKeysRequest\x12\x0f\n\x07pattern\x18\x01 \x01(\t\"\x1c\n\x0cKeysResponse\x12\x0c\n\x04keys\x18\x01 \x03(\t\"-\n\rRenameRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07new_key\x18\x02 \x01(\t\"N\n\x0bScanRequest\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\x04\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x14\n\x07pattern\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_pattern\",\n\x0cScanResponse\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\x04\x12\x0c\n\x04keys\x18\x02 \x03(\t\"C\n\x0b\x43opyRequest\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\t\x12\x0f\n\x07replace\x18\x03 \x01(\x08\"\x12\n\x10RandomKeyRequest\"\x1c\n\x0cTouchRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"+\n\x0cLPushRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06values\x18\x02 \x03(\x0c\"+\n\x0cRPushRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06values\x18\x02 \x03(\x0c\"\x1a\n\x0bLPopRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1a\n\x0bRPopRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"9\n\rLRangeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0c\n\x04stop\x18\x03 \x01(\x03\"\x1f\n\rArrayResponse\x12\x0e\n\x06values\x18\x01 \x03(\x0c\"\x1a\n\x0bLLenRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"+\n\rLIndexRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05index\x18\x02 \x01(\x03\"8\n\x0bLSetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05index\x18\x02 \x01(\x03\x12\r\n\x05value\x18\x03 \x01(\x0c\"8\n\x0cLTrimRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0c\n\x04stop\x18\x03 \x01(\x03\"K\n\x0eLInsertRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06\x62\x65\x66ore\x18\x02 \x01(\x08\x12\r\n\x05pivot\x18\x03 \x01(\x0c\x12\r\n\x05value\x18\x04 \x01(\x0c\"8\n\x0bLRemRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\x12\r\n\x05value\x18\x03 \x01(\x0c\"G\n\x0bLPosRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_count\"W\n\x0cLMoveRequest\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\t\x12\x10\n\x08src_left\x18\x03 \x01(\x08\x12\x10\n\x08\x64st_left\x18\x04 \x01(\x08\"@\n\x0bHSetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x14.ember.v1.FieldValue\"*\n\nFieldValue\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\")\n\x0bHGetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\"\x1d\n\x0eHGetAllRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"4\n\x0cHashResponse\x12$\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x14.ember.v1.FieldValue\"*\n\x0bHDelRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06\x66ields\x18\x02 \x03(\t\",\n\x0eHExistsRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\"\x1a\n\x0bHLenRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\";\n\x0eHIncrByRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x03 \x01(\x03\"\x1b\n\x0cHKeysRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1b\n\x0cHValsRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"+\n\x0cHMGetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06\x66ields\x18\x02 \x03(\t\"@\n\x15OptionalArrayResponse\x12\'\n\x06values\x18\x01 \x03(\x0b\x32\x17.ember.v1.OptionalValue\"\\\n\x0cHScanRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06\x63ursor\x18\x02 \x01(\x04\x12\x14\n\x07pattern\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x63ount\x18\x04 \x01(\rB\n\n\x08_pattern\"E\n\rHScanResponse\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\x04\x12$\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x14.ember.v1.FieldValue\"+\n\x0bSAddRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07members\x18\x02 \x03(\t\"+\n\x0bSRemRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07members\x18\x02 \x03(\t\"\x1e\n\x0fSMembersRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"/\n\x10SIsMemberRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06member\x18\x02 \x01(\t\"\x1b\n\x0cSCardRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1d\n\rSUnionRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"\x1d\n\rSInterRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"\x1c\n\x0cSDiffRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"7\n\x12SUnionStoreRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x03(\t\"7\n\x12SInterStoreRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x03(\t\"6\n\x11SDiffStoreRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x03(\t\"0\n\x12SRandMemberRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\")\n\x0bSPopRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"1\n\x11SMisMemberRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07members\x18\x02 \x03(\t\"\\\n\x0cSScanRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06\x63ursor\x18\x02 \x01(\x04\x12\x14\n\x07pattern\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x63ount\x18\x04 \x01(\rB\n\n\x08_pattern\"0\n\rSScanResponse\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\x04\x12\x0f\n\x07members\x18\x02 \x03(\t\"~\n\x0bZAddRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x07members\x18\x02 \x03(\x0b\x32\x15.ember.v1.ScoreMember\x12\n\n\x02nx\x18\x03 \x01(\x08\x12\n\n\x02xx\x18\x04 \x01(\x08\x12\n\n\x02gt\x18\x05 \x01(\x08\x12\n\n\x02lt\x18\x06 \x01(\x08\x12\n\n\x02\x63h\x18\x07 \x01(\x08\",\n\x0bScoreMember\x12\r\n\x05score\x18\x01 \x01(\x01\x12\x0e\n\x06member\x18\x02 \x01(\t\"+\n\x0bZRemRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07members\x18\x02 \x03(\t\",\n\rZScoreRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06member\x18\x02 \x01(\t\"5\n\x15OptionalFloatResponse\x12\x12\n\x05value\x18\x01 \x01(\x01H\x00\x88\x01\x01\x42\x08\n\x06_value\"+\n\x0cZRankRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06member\x18\x02 \x01(\t\"3\n\x13OptionalIntResponse\x12\x12\n\x05value\x18\x01 \x01(\x03H\x00\x88\x01\x01\x42\x08\n\x06_value\"\x1b\n\x0cZCardRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"N\n\rZRangeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0c\n\x04stop\x18\x03 \x01(\x03\x12\x13\n\x0bwith_scores\x18\x04 \x01(\x08\"8\n\x0eZRangeResponse\x12&\n\x07members\x18\x01 \x03(\x0b\x32\x15.ember.v1.ScoreMember\".\n\x0fZRevRankRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06member\x18\x02 \x01(\t\"Q\n\x10ZRevRangeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0c\n\x04stop\x18\x03 \x01(\x03\x12\x13\n\x0bwith_scores\x18\x04 \x01(\x08\"6\n\rZCountRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0b\n\x03min\x18\x02 \x01(\t\x12\x0b\n\x03max\x18\x03 \x01(\t\"<\n\x0eZIncrByRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x02 \x01(\x01\x12\x0e\n\x06member\x18\x03 \x01(\t\"\x90\x01\n\x14ZRangeByScoreRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0b\n\x03min\x18\x02 \x01(\t\x12\x0b\n\x03max\x18\x03 \x01(\t\x12\x13\n\x06offset\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x13\n\x0bwith_scores\x18\x06 \x01(\x08\x42\t\n\x07_offsetB\x08\n\x06_count\"\x93\x01\n\x17ZRevRangeByScoreRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0b\n\x03max\x18\x02 \x01(\t\x12\x0b\n\x03min\x18\x03 \x01(\t\x12\x13\n\x06offset\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x13\n\x0bwith_scores\x18\x06 \x01(\x08\x42\t\n\x07_offsetB\x08\n\x06_count\",\n\x0eZPopMinRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\r\",\n\x0eZPopMaxRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"1\n\x0cZDiffRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x13\n\x0bwith_scores\x18\x02 \x01(\x08\"2\n\rZInterRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x13\n\x0bwith_scores\x18\x02 \x01(\x08\"2\n\rZUnionRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x13\n\x0bwith_scores\x18\x02 \x01(\x08\"\\\n\x0cZScanRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06\x63ursor\x18\x02 \x01(\x04\x12\x14\n\x07pattern\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x63ount\x18\x04 \x01(\rB\n\n\x08_pattern\"G\n\rZScanResponse\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\x04\x12&\n\x07members\x18\x02 \x03(\x0b\x32\x15.ember.v1.ScoreMember\"\xf9\x01\n\x0bVAddRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07\x65lement\x18\x02 \x01(\t\x12\x12\n\x06vector\x18\x03 \x03(\x02\x42\x02\x10\x01\x12&\n\x06metric\x18\x04 \x01(\x0e\x32\x16.ember.v1.VectorMetric\x12\x32\n\x0cquantization\x18\x05 \x01(\x0e\x32\x1c.ember.v1.VectorQuantization\x12\x19\n\x0c\x63onnectivity\x18\x06 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0f\x65\x66_construction\x18\x07 \x01(\rH\x01\x88\x01\x01\x42\x0f\n\r_connectivityB\x12\n\x10_ef_construction\"5\n\x0eVAddBatchEntry\x12\x0f\n\x07\x65lement\x18\x01 \x01(\t\x12\x12\n\x06vector\x18\x02 \x03(\x02\x42\x02\x10\x01\"\x84\x02\n\x10VAddBatchRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x07\x65ntries\x18\x02 \x03(\x0b\x32\x18.ember.v1.VAddBatchEntry\x12&\n\x06metric\x18\x03 \x01(\x0e\x32\x16.ember.v1.VectorMetric\x12\x32\n\x0cquantization\x18\x04 \x01(\x0e\x32\x1c.ember.v1.VectorQuantization\x12\x19\n\x0c\x63onnectivity\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0f\x65\x66_construction\x18\x06 \x01(\rH\x01\x88\x01\x01\x42\x0f\n\r_connectivityB\x12\n\x10_ef_construction\"b\n\x0bVSimRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x11\n\x05query\x18\x02 \x03(\x02\x42\x02\x10\x01\x12\r\n\x05\x63ount\x18\x03 \x01(\r\x12\x16\n\tef_search\x18\x04 \x01(\rH\x00\x88\x01\x01\x42\x0c\n\n_ef_search\"5\n\x0cVSimResponse\x12%\n\x07results\x18\x01 \x03(\x0b\x32\x14.ember.v1.VSimResult\"/\n\nVSimResult\x12\x0f\n\x07\x65lement\x18\x01 \x01(\t\x12\x10\n\x08\x64istance\x18\x02 \x01(\x02\"+\n\x0bVRemRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07\x65lement\x18\x02 \x01(\t\"+\n\x0bVGetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07\x65lement\x18\x02 \x01(\t\"B\n\x0cVGetResponse\x12\x13\n\x06\x65xists\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\x06vector\x18\x02 \x03(\x02\x42\x02\x10\x01\x42\t\n\x07_exists\"\x1b\n\x0cVCardRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1a\n\x0bVDimRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1b\n\x0cVInfoRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"C\n\rVInfoResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\x12\"\n\x04info\x18\x02 \x03(\x0b\x32\x14.ember.v1.FieldValue\"/\n\x0bPingRequest\x12\x14\n\x07message\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_message\"\x1f\n\x0cPingResponse\x12\x0f\n\x07message\x18\x01 \x01(\t\"\x1f\n\x0e\x46lushDbRequest\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\"\x0f\n\rDbSizeRequest\"/\n\x0bInfoRequest\x12\x14\n\x07section\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_section\"\x1c\n\x0cInfoResponse\x12\x0c\n\x04info\x18\x01 \x01(\t\"\x1e\n\x0b\x45\x63hoRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\"\x1f\n\x0c\x45\x63hoResponse\x12\x0f\n\x07message\x18\x01 \x01(\t\"\x1a\n\x0b\x44\x65\x63rRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1d\n\rUnlinkRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"\x0f\n\rBgSaveRequest\"\x15\n\x13\x42gRewriteAofRequest\"\r\n\x0bTimeRequest\"5\n\x0cTimeResponse\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\x14\n\x0cmicroseconds\x18\x02 \x01(\x03\"\x11\n\x0fLastSaveRequest\"1\n\x11SlowLogGetRequest\x12\x12\n\x05\x63ount\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_count\"=\n\x12SlowLogGetResponse\x12\'\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x16.ember.v1.SlowLogEntry\"\\\n\x0cSlowLogEntry\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x16\n\x0etimestamp_unix\x18\x02 \x01(\x04\x12\x17\n\x0f\x64uration_micros\x18\x03 \x01(\x04\x12\x0f\n\x07\x63ommand\x18\x04 \x01(\t\"\x13\n\x11SlowLogLenRequest\"\x15\n\x13SlowLogResetRequest\"2\n\x0ePublishRequest\x12\x0f\n\x07\x63hannel\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\x0c\"6\n\x10SubscribeRequest\x12\x10\n\x08\x63hannels\x18\x01 \x03(\t\x12\x10\n\x08patterns\x18\x02 \x03(\t\"_\n\x0eSubscribeEvent\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x02 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x14\n\x07pattern\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_pattern\"9\n\x15PubSubChannelsRequest\x12\x14\n\x07pattern\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_pattern\"\'\n\x13PubSubNumSubRequest\x12\x10\n\x08\x63hannels\x18\x01 \x03(\t\">\n\x14PubSubNumSubResponse\x12&\n\x06\x63ounts\x18\x01 \x03(\x0b\x32\x16.ember.v1.ChannelCount\"\x15\n\x13PubSubNumPatRequest\".\n\x0c\x43hannelCount\x12\x0f\n\x07\x63hannel\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\"\xed%\n\x0fPipelineRequest\x12\n\n\x02id\x18\x01 \x01(\x04\x12#\n\x03get\x18\x02 \x01(\x0b\x32\x14.ember.v1.GetRequestH\x00\x12#\n\x03set\x18\x03 \x01(\x0b\x32\x14.ember.v1.SetRequestH\x00\x12#\n\x03\x64\x65l\x18\x04 \x01(\x0b\x32\x14.ember.v1.DelRequestH\x00\x12)\n\x06\x65xists\x18\x05 \x01(\x0b\x32\x17.ember.v1.ExistsRequestH\x00\x12%\n\x04incr\x18\x06 \x01(\x0b\x32\x15.ember.v1.IncrRequestH\x00\x12*\n\x07incr_by\x18\x07 \x01(\x0b\x32\x17.ember.v1.IncrByRequestH\x00\x12*\n\x07\x64\x65\x63r_by\x18\x08 \x01(\x0b\x32\x17.ember.v1.DecrByRequestH\x00\x12\x35\n\rincr_by_float\x18\t \x01(\x0b\x32\x1c.ember.v1.IncrByFloatRequestH\x00\x12)\n\x06\x61ppend\x18\n \x01(\x0b\x32\x17.ember.v1.AppendRequestH\x00\x12)\n\x06strlen\x18\x0b \x01(\x0b\x32\x17.ember.v1.StrlenRequestH\x00\x12)\n\x06\x65xpire\x18\x0c \x01(\x0b\x32\x17.ember.v1.ExpireRequestH\x00\x12+\n\x07pexpire\x18\r \x01(\x0b\x32\x18.ember.v1.PExpireRequestH\x00\x12+\n\x07persist\x18\x0e \x01(\x0b\x32\x18.ember.v1.PersistRequestH\x00\x12#\n\x03ttl\x18\x0f \x01(\x0b\x32\x14.ember.v1.TtlRequestH\x00\x12%\n\x04pttl\x18\x10 \x01(\x0b\x32\x15.ember.v1.PTtlRequestH\x00\x12%\n\x04type\x18\x11 \x01(\x0b\x32\x15.ember.v1.TypeRequestH\x00\x12\'\n\x05lpush\x18\x12 \x01(\x0b\x32\x16.ember.v1.LPushRequestH\x00\x12\'\n\x05rpush\x18\x13 \x01(\x0b\x32\x16.ember.v1.RPushRequestH\x00\x12%\n\x04lpop\x18\x14 \x01(\x0b\x32\x15.ember.v1.LPopRequestH\x00\x12%\n\x04rpop\x18\x15 \x01(\x0b\x32\x15.ember.v1.RPopRequestH\x00\x12)\n\x06lrange\x18\x16 \x01(\x0b\x32\x17.ember.v1.LRangeRequestH\x00\x12%\n\x04llen\x18\x17 \x01(\x0b\x32\x15.ember.v1.LLenRequestH\x00\x12%\n\x04hset\x18\x18 \x01(\x0b\x32\x15.ember.v1.HSetRequestH\x00\x12%\n\x04hget\x18\x19 \x01(\x0b\x32\x15.ember.v1.HGetRequestH\x00\x12+\n\x07hgetall\x18\x1a \x01(\x0b\x32\x18.ember.v1.HGetAllRequestH\x00\x12%\n\x04hdel\x18\x1b \x01(\x0b\x32\x15.ember.v1.HDelRequestH\x00\x12+\n\x07hexists\x18\x1c \x01(\x0b\x32\x18.ember.v1.HExistsRequestH\x00\x12%\n\x04hlen\x18\x1d \x01(\x0b\x32\x15.ember.v1.HLenRequestH\x00\x12,\n\x08hincr_by\x18\x1e \x01(\x0b\x32\x18.ember.v1.HIncrByRequestH\x00\x12\'\n\x05hkeys\x18\x1f \x01(\x0b\x32\x16.ember.v1.HKeysRequestH\x00\x12\'\n\x05hvals\x18 \x01(\x0b\x32\x16.ember.v1.HValsRequestH\x00\x12\'\n\x05hmget\x18! \x01(\x0b\x32\x16.ember.v1.HMGetRequestH\x00\x12%\n\x04sadd\x18\" \x01(\x0b\x32\x15.ember.v1.SAddRequestH\x00\x12%\n\x04srem\x18# \x01(\x0b\x32\x15.ember.v1.SRemRequestH\x00\x12-\n\x08smembers\x18$ \x01(\x0b\x32\x19.ember.v1.SMembersRequestH\x00\x12/\n\tsismember\x18% \x01(\x0b\x32\x1a.ember.v1.SIsMemberRequestH\x00\x12\'\n\x05scard\x18& \x01(\x0b\x32\x16.ember.v1.SCardRequestH\x00\x12%\n\x04zadd\x18\' \x01(\x0b\x32\x15.ember.v1.ZAddRequestH\x00\x12%\n\x04zrem\x18( \x01(\x0b\x32\x15.ember.v1.ZRemRequestH\x00\x12)\n\x06zscore\x18) \x01(\x0b\x32\x17.ember.v1.ZScoreRequestH\x00\x12\'\n\x05zrank\x18* \x01(\x0b\x32\x16.ember.v1.ZRankRequestH\x00\x12\'\n\x05zcard\x18+ \x01(\x0b\x32\x16.ember.v1.ZCardRequestH\x00\x12)\n\x06zrange\x18, \x01(\x0b\x32\x17.ember.v1.ZRangeRequestH\x00\x12%\n\x04vadd\x18- \x01(\x0b\x32\x15.ember.v1.VAddRequestH\x00\x12%\n\x04vsim\x18. \x01(\x0b\x32\x15.ember.v1.VSimRequestH\x00\x12%\n\x04vrem\x18/ \x01(\x0b\x32\x15.ember.v1.VRemRequestH\x00\x12%\n\x04vget\x18\x30 \x01(\x0b\x32\x15.ember.v1.VGetRequestH\x00\x12\'\n\x05vcard\x18\x31 \x01(\x0b\x32\x16.ember.v1.VCardRequestH\x00\x12%\n\x04vdim\x18\x32 \x01(\x0b\x32\x15.ember.v1.VDimRequestH\x00\x12\'\n\x05vinfo\x18\x33 \x01(\x0b\x32\x16.ember.v1.VInfoRequestH\x00\x12%\n\x04ping\x18\x34 \x01(\x0b\x32\x15.ember.v1.PingRequestH\x00\x12+\n\x07\x66lushdb\x18\x35 \x01(\x0b\x32\x18.ember.v1.FlushDbRequestH\x00\x12)\n\x06\x64\x62size\x18\x36 \x01(\x0b\x32\x17.ember.v1.DbSizeRequestH\x00\x12%\n\x04mget\x18\x37 \x01(\x0b\x32\x15.ember.v1.MGetRequestH\x00\x12%\n\x04mset\x18\x38 \x01(\x0b\x32\x15.ember.v1.MSetRequestH\x00\x12%\n\x04keys\x18\x39 \x01(\x0b\x32\x15.ember.v1.KeysRequestH\x00\x12)\n\x06rename\x18: \x01(\x0b\x32\x17.ember.v1.RenameRequestH\x00\x12%\n\x04scan\x18; \x01(\x0b\x32\x15.ember.v1.ScanRequestH\x00\x12%\n\x04\x65\x63ho\x18< \x01(\x0b\x32\x15.ember.v1.EchoRequestH\x00\x12%\n\x04\x64\x65\x63r\x18= \x01(\x0b\x32\x15.ember.v1.DecrRequestH\x00\x12)\n\x06unlink\x18> \x01(\x0b\x32\x17.ember.v1.UnlinkRequestH\x00\x12)\n\x06\x62gsave\x18? \x01(\x0b\x32\x17.ember.v1.BgSaveRequestH\x00\x12\x35\n\x0c\x62grewriteaof\x18@ \x01(\x0b\x32\x1d.ember.v1.BgRewriteAofRequestH\x00\x12\x32\n\x0bslowlog_get\x18\x41 \x01(\x0b\x32\x1b.ember.v1.SlowLogGetRequestH\x00\x12\x32\n\x0bslowlog_len\x18\x42 \x01(\x0b\x32\x1b.ember.v1.SlowLogLenRequestH\x00\x12\x36\n\rslowlog_reset\x18\x43 \x01(\x0b\x32\x1d.ember.v1.SlowLogResetRequestH\x00\x12+\n\x07publish\x18\x44 \x01(\x0b\x32\x18.ember.v1.PublishRequestH\x00\x12:\n\x0fpubsub_channels\x18\x45 \x01(\x0b\x32\x1f.ember.v1.PubSubChannelsRequestH\x00\x12\x36\n\rpubsub_numsub\x18\x46 \x01(\x0b\x32\x1d.ember.v1.PubSubNumSubRequestH\x00\x12\x36\n\rpubsub_numpat\x18G \x01(\x0b\x32\x1d.ember.v1.PubSubNumPatRequestH\x00\x12\x30\n\nvadd_batch\x18H \x01(\x0b\x32\x1a.ember.v1.VAddBatchRequestH\x00\x12*\n\x07get_del\x18I \x01(\x0b\x32\x17.ember.v1.GetDelRequestH\x00\x12(\n\x06get_ex\x18J \x01(\x0b\x32\x16.ember.v1.GetExRequestH\x00\x12.\n\tget_range\x18K \x01(\x0b\x32\x19.ember.v1.GetRangeRequestH\x00\x12.\n\tset_range\x18L \x01(\x0b\x32\x19.ember.v1.SetRangeRequestH\x00\x12%\n\x04\x63opy\x18M \x01(\x0b\x32\x15.ember.v1.CopyRequestH\x00\x12\x30\n\nrandom_key\x18N \x01(\x0b\x32\x1a.ember.v1.RandomKeyRequestH\x00\x12\'\n\x05touch\x18O \x01(\x0b\x32\x16.ember.v1.TouchRequestH\x00\x12)\n\x06lindex\x18P \x01(\x0b\x32\x17.ember.v1.LIndexRequestH\x00\x12%\n\x04lset\x18Q \x01(\x0b\x32\x15.ember.v1.LSetRequestH\x00\x12\'\n\x05ltrim\x18R \x01(\x0b\x32\x16.ember.v1.LTrimRequestH\x00\x12+\n\x07linsert\x18S \x01(\x0b\x32\x18.ember.v1.LInsertRequestH\x00\x12%\n\x04lrem\x18T \x01(\x0b\x32\x15.ember.v1.LRemRequestH\x00\x12%\n\x04lpos\x18U \x01(\x0b\x32\x15.ember.v1.LPosRequestH\x00\x12\'\n\x05lmove\x18V \x01(\x0b\x32\x16.ember.v1.LMoveRequestH\x00\x12)\n\x06sunion\x18W \x01(\x0b\x32\x17.ember.v1.SUnionRequestH\x00\x12)\n\x06sinter\x18X \x01(\x0b\x32\x17.ember.v1.SInterRequestH\x00\x12\'\n\x05sdiff\x18Y \x01(\x0b\x32\x16.ember.v1.SDiffRequestH\x00\x12\x34\n\x0csunion_store\x18Z \x01(\x0b\x32\x1c.ember.v1.SUnionStoreRequestH\x00\x12\x34\n\x0csinter_store\x18[ \x01(\x0b\x32\x1c.ember.v1.SInterStoreRequestH\x00\x12\x32\n\x0bsdiff_store\x18\\ \x01(\x0b\x32\x1b.ember.v1.SDiffStoreRequestH\x00\x12\x34\n\x0csrand_member\x18] \x01(\x0b\x32\x1c.ember.v1.SRandMemberRequestH\x00\x12%\n\x04spop\x18^ \x01(\x0b\x32\x15.ember.v1.SPopRequestH\x00\x12\x31\n\nsmismember\x18_ \x01(\x0b\x32\x1b.ember.v1.SMisMemberRequestH\x00\x12\'\n\x05hscan\x18` \x01(\x0b\x32\x16.ember.v1.HScanRequestH\x00\x12.\n\tzrev_rank\x18\x61 \x01(\x0b\x32\x19.ember.v1.ZRevRankRequestH\x00\x12\x30\n\nzrev_range\x18\x62 \x01(\x0b\x32\x1a.ember.v1.ZRevRangeRequestH\x00\x12)\n\x06zcount\x18\x63 \x01(\x0b\x32\x17.ember.v1.ZCountRequestH\x00\x12+\n\x07zincrby\x18\x64 \x01(\x0b\x32\x18.ember.v1.ZIncrByRequestH\x00\x12\x39\n\x0fzrange_by_score\x18\x65 \x01(\x0b\x32\x1e.ember.v1.ZRangeByScoreRequestH\x00\x12@\n\x13zrev_range_by_score\x18\x66 \x01(\x0b\x32!.ember.v1.ZRevRangeByScoreRequestH\x00\x12+\n\x07zpopmin\x18g \x01(\x0b\x32\x18.ember.v1.ZPopMinRequestH\x00\x12+\n\x07zpopmax\x18h \x01(\x0b\x32\x18.ember.v1.ZPopMaxRequestH\x00\x12\'\n\x05zdiff\x18i \x01(\x0b\x32\x16.ember.v1.ZDiffRequestH\x00\x12)\n\x06zinter\x18j \x01(\x0b\x32\x17.ember.v1.ZInterRequestH\x00\x12)\n\x06zunion\x18k \x01(\x0b\x32\x17.ember.v1.ZUnionRequestH\x00\x12\'\n\x05zscan\x18l \x01(\x0b\x32\x16.ember.v1.ZScanRequestH\x00\x12\'\n\x05sscan\x18m \x01(\x0b\x32\x16.ember.v1.SScanRequestH\x00\x12%\n\x04time\x18n \x01(\x0b\x32\x15.ember.v1.TimeRequestH\x00\x12.\n\tlast_save\x18o \x01(\x0b\x32\x19.ember.v1.LastSaveRequestH\x00\x42\t\n\x07\x63ommand\"\xcb\x0b\n\x10PipelineResponse\x12\n\n\x02id\x18\x01 \x01(\x04\x12$\n\x03get\x18\x02 \x01(\x0b\x32\x15.ember.v1.GetResponseH\x00\x12$\n\x03set\x18\x03 \x01(\x0b\x32\x15.ember.v1.SetResponseH\x00\x12$\n\x03\x64\x65l\x18\x04 \x01(\x0b\x32\x15.ember.v1.DelResponseH\x00\x12(\n\x07int_val\x18\x05 \x01(\x0b\x32\x15.ember.v1.IntResponseH\x00\x12*\n\x08\x62ool_val\x18\x06 \x01(\x0b\x32\x16.ember.v1.BoolResponseH\x00\x12,\n\tfloat_val\x18\x07 \x01(\x0b\x32\x17.ember.v1.FloatResponseH\x00\x12*\n\x06status\x18\x08 \x01(\x0b\x32\x18.ember.v1.StatusResponseH\x00\x12$\n\x03ttl\x18\t \x01(\x0b\x32\x15.ember.v1.TtlResponseH\x00\x12&\n\x04type\x18\n \x01(\x0b\x32\x16.ember.v1.TypeResponseH\x00\x12(\n\x05\x61rray\x18\x0b \x01(\x0b\x32\x17.ember.v1.ArrayResponseH\x00\x12&\n\x04hash\x18\x0c \x01(\x0b\x32\x16.ember.v1.HashResponseH\x00\x12\x39\n\x0eoptional_array\x18\r \x01(\x0b\x32\x1f.ember.v1.OptionalArrayResponseH\x00\x12&\n\x04keys\x18\x0e \x01(\x0b\x32\x16.ember.v1.KeysResponseH\x00\x12&\n\x04scan\x18\x0f \x01(\x0b\x32\x16.ember.v1.ScanResponseH\x00\x12\x39\n\x0eoptional_float\x18\x10 \x01(\x0b\x32\x1f.ember.v1.OptionalFloatResponseH\x00\x12\x35\n\x0coptional_int\x18\x11 \x01(\x0b\x32\x1d.ember.v1.OptionalIntResponseH\x00\x12*\n\x06zrange\x18\x12 \x01(\x0b\x32\x18.ember.v1.ZRangeResponseH\x00\x12&\n\x04vsim\x18\x13 \x01(\x0b\x32\x16.ember.v1.VSimResponseH\x00\x12&\n\x04vget\x18\x14 \x01(\x0b\x32\x16.ember.v1.VGetResponseH\x00\x12(\n\x05vinfo\x18\x15 \x01(\x0b\x32\x17.ember.v1.VInfoResponseH\x00\x12&\n\x04mget\x18\x16 \x01(\x0b\x32\x16.ember.v1.MGetResponseH\x00\x12&\n\x04mset\x18\x17 \x01(\x0b\x32\x16.ember.v1.MSetResponseH\x00\x12&\n\x04ping\x18\x18 \x01(\x0b\x32\x16.ember.v1.PingResponseH\x00\x12(\n\x05\x65rror\x18\x19 \x01(\x0b\x32\x17.ember.v1.ErrorResponseH\x00\x12&\n\x04info\x18\x1a \x01(\x0b\x32\x16.ember.v1.InfoResponseH\x00\x12&\n\x04\x65\x63ho\x18\x1b \x01(\x0b\x32\x16.ember.v1.EchoResponseH\x00\x12\x33\n\x0bslowlog_get\x18\x1c \x01(\x0b\x32\x1c.ember.v1.SlowLogGetResponseH\x00\x12\x37\n\rpubsub_numsub\x18\x1d \x01(\x0b\x32\x1e.ember.v1.PubSubNumSubResponseH\x00\x12\x31\n\nbool_array\x18\x1e \x01(\x0b\x32\x1b.ember.v1.BoolArrayResponseH\x00\x12(\n\x05hscan\x18\x1f \x01(\x0b\x32\x17.ember.v1.HScanResponseH\x00\x12(\n\x05zscan\x18 \x01(\x0b\x32\x17.ember.v1.ZScanResponseH\x00\x12(\n\x05sscan\x18! \x01(\x0b\x32\x17.ember.v1.SScanResponseH\x00\x12+\n\ttime_resp\x18\" \x01(\x0b\x32\x16.ember.v1.TimeResponseH\x00\x42\x08\n\x06result\"C\n\rErrorResponse\x12\x0f\n\x07message\x18\x01 \x01(\t\x12!\n\x04kind\x18\x02 \x01(\x0e\x32\x13.ember.v1.ErrorKind*f\n\x0cVectorMetric\x12\x18\n\x14VECTOR_METRIC_COSINE\x10\x00\x12\x1b\n\x17VECTOR_METRIC_EUCLIDEAN\x10\x01\x12\x1f\n\x1bVECTOR_METRIC_INNER_PRODUCT\x10\x02*k\n\x12VectorQuantization\x12\x1c\n\x18VECTOR_QUANTIZATION_NONE\x10\x00\x12\x1b\n\x17VECTOR_QUANTIZATION_F16\x10\x01\x12\x1a\n\x16VECTOR_QUANTIZATION_I8\x10\x02*\x9a\x01\n\tErrorKind\x12\x1a\n\x16\x45RROR_KIND_UNSPECIFIED\x10\x00\x12\x19\n\x15\x45RROR_KIND_WRONG_TYPE\x10\x01\x12\x1c\n\x18\x45RROR_KIND_OUT_OF_MEMORY\x10\x02\x12\x17\n\x13\x45RROR_KIND_INTERNAL\x10\x03\x12\x1f\n\x1b\x45RROR_KIND_INVALID_ARGUMENT\x10\x04\x32\x88\x35\n\nEmberCache\x12\x32\n\x03Get\x12\x14.ember.v1.GetRequest\x1a\x15.ember.v1.GetResponse\x12\x32\n\x03Set\x12\x14.ember.v1.SetRequest\x1a\x15.ember.v1.SetResponse\x12\x32\n\x03\x44\x65l\x12\x14.ember.v1.DelRequest\x1a\x15.ember.v1.DelResponse\x12\x35\n\x04MGet\x12\x15.ember.v1.MGetRequest\x1a\x16.ember.v1.MGetResponse\x12\x35\n\x04MSet\x12\x15.ember.v1.MSetRequest\x1a\x16.ember.v1.MSetResponse\x12\x34\n\x04Incr\x12\x15.ember.v1.IncrRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06IncrBy\x12\x17.ember.v1.IncrByRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06\x44\x65\x63rBy\x12\x17.ember.v1.DecrByRequest\x1a\x15.ember.v1.IntResponse\x12\x44\n\x0bIncrByFloat\x12\x1c.ember.v1.IncrByFloatRequest\x1a\x17.ember.v1.FloatResponse\x12\x38\n\x06\x41ppend\x12\x17.ember.v1.AppendRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06Strlen\x12\x17.ember.v1.StrlenRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06\x45xists\x12\x17.ember.v1.ExistsRequest\x1a\x15.ember.v1.IntResponse\x12\x39\n\x06\x45xpire\x12\x17.ember.v1.ExpireRequest\x1a\x16.ember.v1.BoolResponse\x12;\n\x07PExpire\x12\x18.ember.v1.PExpireRequest\x1a\x16.ember.v1.BoolResponse\x12;\n\x07Persist\x12\x18.ember.v1.PersistRequest\x1a\x16.ember.v1.BoolResponse\x12\x32\n\x03Ttl\x12\x14.ember.v1.TtlRequest\x1a\x15.ember.v1.TtlResponse\x12\x34\n\x04PTtl\x12\x15.ember.v1.PTtlRequest\x1a\x15.ember.v1.TtlResponse\x12\x35\n\x04Type\x12\x15.ember.v1.TypeRequest\x1a\x16.ember.v1.TypeResponse\x12\x35\n\x04Keys\x12\x15.ember.v1.KeysRequest\x1a\x16.ember.v1.KeysResponse\x12;\n\x06Rename\x12\x17.ember.v1.RenameRequest\x1a\x18.ember.v1.StatusResponse\x12\x35\n\x04Scan\x12\x15.ember.v1.ScanRequest\x1a\x16.ember.v1.ScanResponse\x12\x36\n\x05LPush\x12\x16.ember.v1.LPushRequest\x1a\x15.ember.v1.IntResponse\x12\x36\n\x05RPush\x12\x16.ember.v1.RPushRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04LPop\x12\x15.ember.v1.LPopRequest\x1a\x15.ember.v1.GetResponse\x12\x34\n\x04RPop\x12\x15.ember.v1.RPopRequest\x1a\x15.ember.v1.GetResponse\x12:\n\x06LRange\x12\x17.ember.v1.LRangeRequest\x1a\x17.ember.v1.ArrayResponse\x12\x34\n\x04LLen\x12\x15.ember.v1.LLenRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04HSet\x12\x15.ember.v1.HSetRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04HGet\x12\x15.ember.v1.HGetRequest\x1a\x15.ember.v1.GetResponse\x12;\n\x07HGetAll\x12\x18.ember.v1.HGetAllRequest\x1a\x16.ember.v1.HashResponse\x12\x34\n\x04HDel\x12\x15.ember.v1.HDelRequest\x1a\x15.ember.v1.IntResponse\x12;\n\x07HExists\x12\x18.ember.v1.HExistsRequest\x1a\x16.ember.v1.BoolResponse\x12\x34\n\x04HLen\x12\x15.ember.v1.HLenRequest\x1a\x15.ember.v1.IntResponse\x12:\n\x07HIncrBy\x12\x18.ember.v1.HIncrByRequest\x1a\x15.ember.v1.IntResponse\x12\x37\n\x05HKeys\x12\x16.ember.v1.HKeysRequest\x1a\x16.ember.v1.KeysResponse\x12\x38\n\x05HVals\x12\x16.ember.v1.HValsRequest\x1a\x17.ember.v1.ArrayResponse\x12@\n\x05HMGet\x12\x16.ember.v1.HMGetRequest\x1a\x1f.ember.v1.OptionalArrayResponse\x12\x34\n\x04SAdd\x12\x15.ember.v1.SAddRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04SRem\x12\x15.ember.v1.SRemRequest\x1a\x15.ember.v1.IntResponse\x12=\n\x08SMembers\x12\x19.ember.v1.SMembersRequest\x1a\x16.ember.v1.KeysResponse\x12?\n\tSIsMember\x12\x1a.ember.v1.SIsMemberRequest\x1a\x16.ember.v1.BoolResponse\x12\x36\n\x05SCard\x12\x16.ember.v1.SCardRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04ZAdd\x12\x15.ember.v1.ZAddRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04ZRem\x12\x15.ember.v1.ZRemRequest\x1a\x15.ember.v1.IntResponse\x12\x42\n\x06ZScore\x12\x17.ember.v1.ZScoreRequest\x1a\x1f.ember.v1.OptionalFloatResponse\x12>\n\x05ZRank\x12\x16.ember.v1.ZRankRequest\x1a\x1d.ember.v1.OptionalIntResponse\x12\x36\n\x05ZCard\x12\x16.ember.v1.ZCardRequest\x1a\x15.ember.v1.IntResponse\x12;\n\x06ZRange\x12\x17.ember.v1.ZRangeRequest\x1a\x18.ember.v1.ZRangeResponse\x12\x35\n\x04VAdd\x12\x15.ember.v1.VAddRequest\x1a\x16.ember.v1.BoolResponse\x12>\n\tVAddBatch\x12\x1a.ember.v1.VAddBatchRequest\x1a\x15.ember.v1.IntResponse\x12\x35\n\x04VSim\x12\x15.ember.v1.VSimRequest\x1a\x16.ember.v1.VSimResponse\x12\x35\n\x04VRem\x12\x15.ember.v1.VRemRequest\x1a\x16.ember.v1.BoolResponse\x12\x35\n\x04VGet\x12\x15.ember.v1.VGetRequest\x1a\x16.ember.v1.VGetResponse\x12\x36\n\x05VCard\x12\x16.ember.v1.VCardRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04VDim\x12\x15.ember.v1.VDimRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x05VInfo\x12\x16.ember.v1.VInfoRequest\x1a\x17.ember.v1.VInfoResponse\x12\x35\n\x04Ping\x12\x15.ember.v1.PingRequest\x1a\x16.ember.v1.PingResponse\x12\x35\n\x04\x45\x63ho\x12\x15.ember.v1.EchoRequest\x1a\x16.ember.v1.EchoResponse\x12\x34\n\x04\x44\x65\x63r\x12\x15.ember.v1.DecrRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06Unlink\x12\x17.ember.v1.UnlinkRequest\x1a\x15.ember.v1.DelResponse\x12=\n\x07\x46lushDb\x12\x18.ember.v1.FlushDbRequest\x1a\x18.ember.v1.StatusResponse\x12\x38\n\x06\x44\x62Size\x12\x17.ember.v1.DbSizeRequest\x1a\x15.ember.v1.IntResponse\x12\x35\n\x04Info\x12\x15.ember.v1.InfoRequest\x1a\x16.ember.v1.InfoResponse\x12;\n\x06\x42gSave\x12\x17.ember.v1.BgSaveRequest\x1a\x18.ember.v1.StatusResponse\x12G\n\x0c\x42gRewriteAof\x12\x1d.ember.v1.BgRewriteAofRequest\x1a\x18.ember.v1.StatusResponse\x12G\n\nSlowLogGet\x12\x1b.ember.v1.SlowLogGetRequest\x1a\x1c.ember.v1.SlowLogGetResponse\x12@\n\nSlowLogLen\x12\x1b.ember.v1.SlowLogLenRequest\x1a\x15.ember.v1.IntResponse\x12G\n\x0cSlowLogReset\x12\x1d.ember.v1.SlowLogResetRequest\x1a\x18.ember.v1.StatusResponse\x12:\n\x07Publish\x12\x18.ember.v1.PublishRequest\x1a\x15.ember.v1.IntResponse\x12\x43\n\tSubscribe\x12\x1a.ember.v1.SubscribeRequest\x1a\x18.ember.v1.SubscribeEvent0\x01\x12I\n\x0ePubSubChannels\x12\x1f.ember.v1.PubSubChannelsRequest\x1a\x16.ember.v1.KeysResponse\x12M\n\x0cPubSubNumSub\x12\x1d.ember.v1.PubSubNumSubRequest\x1a\x1e.ember.v1.PubSubNumSubResponse\x12\x44\n\x0cPubSubNumPat\x12\x1d.ember.v1.PubSubNumPatRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06GetDel\x12\x17.ember.v1.GetDelRequest\x1a\x15.ember.v1.GetResponse\x12\x36\n\x05GetEx\x12\x16.ember.v1.GetExRequest\x1a\x15.ember.v1.GetResponse\x12<\n\x08GetRange\x12\x19.ember.v1.GetRangeRequest\x1a\x15.ember.v1.GetResponse\x12<\n\x08SetRange\x12\x19.ember.v1.SetRangeRequest\x1a\x15.ember.v1.IntResponse\x12\x35\n\x04\x43opy\x12\x15.ember.v1.CopyRequest\x1a\x16.ember.v1.BoolResponse\x12>\n\tRandomKey\x12\x1a.ember.v1.RandomKeyRequest\x1a\x15.ember.v1.GetResponse\x12\x36\n\x05Touch\x12\x16.ember.v1.TouchRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06LIndex\x12\x17.ember.v1.LIndexRequest\x1a\x15.ember.v1.GetResponse\x12\x37\n\x04LSet\x12\x15.ember.v1.LSetRequest\x1a\x18.ember.v1.StatusResponse\x12\x39\n\x05LTrim\x12\x16.ember.v1.LTrimRequest\x1a\x18.ember.v1.StatusResponse\x12:\n\x07LInsert\x12\x18.ember.v1.LInsertRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04LRem\x12\x15.ember.v1.LRemRequest\x1a\x15.ember.v1.IntResponse\x12<\n\x04LPos\x12\x15.ember.v1.LPosRequest\x1a\x1d.ember.v1.OptionalIntResponse\x12\x36\n\x05LMove\x12\x16.ember.v1.LMoveRequest\x1a\x15.ember.v1.GetResponse\x12\x39\n\x06SUnion\x12\x17.ember.v1.SUnionRequest\x1a\x16.ember.v1.KeysResponse\x12\x39\n\x06SInter\x12\x17.ember.v1.SInterRequest\x1a\x16.ember.v1.KeysResponse\x12\x37\n\x05SDiff\x12\x16.ember.v1.SDiffRequest\x1a\x16.ember.v1.KeysResponse\x12\x42\n\x0bSUnionStore\x12\x1c.ember.v1.SUnionStoreRequest\x1a\x15.ember.v1.IntResponse\x12\x42\n\x0bSInterStore\x12\x1c.ember.v1.SInterStoreRequest\x1a\x15.ember.v1.IntResponse\x12@\n\nSDiffStore\x12\x1b.ember.v1.SDiffStoreRequest\x1a\x15.ember.v1.IntResponse\x12\x44\n\x0bSRandMember\x12\x1c.ember.v1.SRandMemberRequest\x1a\x17.ember.v1.ArrayResponse\x12\x36\n\x04SPop\x12\x15.ember.v1.SPopRequest\x1a\x17.ember.v1.ArrayResponse\x12\x46\n\nSMisMember\x12\x1b.ember.v1.SMisMemberRequest\x1a\x1b.ember.v1.BoolArrayResponse\x12\x38\n\x05HScan\x12\x16.ember.v1.HScanRequest\x1a\x17.ember.v1.HScanResponse\x12\x44\n\x08ZRevRank\x12\x19.ember.v1.ZRevRankRequest\x1a\x1d.ember.v1.OptionalIntResponse\x12\x41\n\tZRevRange\x12\x1a.ember.v1.ZRevRangeRequest\x1a\x18.ember.v1.ZRangeResponse\x12\x38\n\x06ZCount\x12\x17.ember.v1.ZCountRequest\x1a\x15.ember.v1.IntResponse\x12<\n\x07ZIncrBy\x12\x18.ember.v1.ZIncrByRequest\x1a\x17.ember.v1.FloatResponse\x12I\n\rZRangeByScore\x12\x1e.ember.v1.ZRangeByScoreRequest\x1a\x18.ember.v1.ZRangeResponse\x12O\n\x10ZRevRangeByScore\x12!.ember.v1.ZRevRangeByScoreRequest\x1a\x18.ember.v1.ZRangeResponse\x12=\n\x07ZPopMin\x12\x18.ember.v1.ZPopMinRequest\x1a\x18.ember.v1.ZRangeResponse\x12=\n\x07ZPopMax\x12\x18.ember.v1.ZPopMaxRequest\x1a\x18.ember.v1.ZRangeResponse\x12\x39\n\x05ZDiff\x12\x16.ember.v1.ZDiffRequest\x1a\x18.ember.v1.ZRangeResponse\x12;\n\x06ZInter\x12\x17.ember.v1.ZInterRequest\x1a\x18.ember.v1.ZRangeResponse\x12;\n\x06ZUnion\x12\x17.ember.v1.ZUnionRequest\x1a\x18.ember.v1.ZRangeResponse\x12\x38\n\x05ZScan\x12\x16.ember.v1.ZScanRequest\x1a\x17.ember.v1.ZScanResponse\x12\x38\n\x05SScan\x12\x16.ember.v1.SScanRequest\x1a\x17.ember.v1.SScanResponse\x12\x35\n\x04Time\x12\x15.ember.v1.TimeRequest\x1a\x16.ember.v1.TimeResponse\x12<\n\x08LastSave\x12\x19.ember.v1.LastSaveRequest\x1a\x15.ember.v1.IntResponse\x12\x45\n\x08Pipeline\x12\x19.ember.v1.PipelineRequest\x1a\x1a.ember.v1.PipelineResponse(\x01\x30\x01\x42\x31Z/github.com/kacy/ember-go/proto/ember/v1;emberv1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x65mber/v1/ember.proto\x12\x08\x65mber.v1\"\x1c\n\x0bIntResponse\x12\r\n\x05value\x18\x01 \x01(\x03\"\x1d\n\x0c\x42oolResponse\x12\r\n\x05value\x18\x01 \x01(\x08\"\x1e\n\rFloatResponse\x12\r\n\x05value\x18\x01 \x01(\t\" \n\x0eStatusResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"#\n\x11\x42oolArrayResponse\x12\x0e\n\x06values\x18\x01 \x03(\x08\"\x19\n\nGetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"+\n\x0bGetResponse\x12\x12\n\x05value\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x08\n\x06_value\"o\n\nSetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\x16\n\x0e\x65xpire_seconds\x18\x03 \x01(\x04\x12\x15\n\rexpire_millis\x18\x04 \x01(\x04\x12\n\n\x02nx\x18\x05 \x01(\x08\x12\n\n\x02xx\x18\x06 \x01(\x08\"\x19\n\x0bSetResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\"\x1a\n\nDelRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"\x1e\n\x0b\x44\x65lResponse\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x03\"\x1b\n\x0bMGetRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"7\n\x0cMGetResponse\x12\'\n\x06values\x18\x01 \x03(\x0b\x32\x17.ember.v1.OptionalValue\"-\n\rOptionalValue\x12\x12\n\x05value\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x08\n\x06_value\"0\n\x0bMSetRequest\x12!\n\x05pairs\x18\x01 \x03(\x0b\x32\x12.ember.v1.KeyValue\"&\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x0e\n\x0cMSetResponse\"\x1a\n\x0bIncrRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"+\n\rIncrByRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x02 \x01(\x03\"+\n\rDecrByRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x02 \x01(\x03\"0\n\x12IncrByFloatRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x02 \x01(\x01\"+\n\rAppendRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x1c\n\rStrlenRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1c\n\rGetDelRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"[\n\x0cGetExRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x16\n\x0e\x65xpire_seconds\x18\x02 \x01(\x04\x12\x15\n\rexpire_millis\x18\x03 \x01(\x04\x12\x0f\n\x07persist\x18\x04 \x01(\x08\":\n\x0fGetRangeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\"=\n\x0fSetRangeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x03\x12\r\n\x05value\x18\x03 \x01(\x0c\"+\n\rGetsetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\"2\n\rMsetnxRequest\x12!\n\x05pairs\x18\x01 \x03(\x0b\x32\x12.ember.v1.KeyValue\",\n\rGetbitRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x04\";\n\rSetbitRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\r\n\x05value\x18\x03 \x01(\r\"[\n\x0f\x42itcountRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x11\n\thas_range\x18\x02 \x01(\x08\x12\r\n\x05start\x18\x03 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x04 \x01(\x03\x12\x0c\n\x04unit\x18\x05 \x01(\t\"f\n\rBitposRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0b\n\x03\x62it\x18\x02 \x01(\r\x12\x11\n\thas_range\x18\x03 \x01(\x08\x12\r\n\x05start\x18\x04 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x05 \x01(\x03\x12\x0c\n\x04unit\x18\x06 \x01(\t\"6\n\x0c\x42itopRequest\x12\n\n\x02op\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x65st\x18\x02 \x01(\t\x12\x0c\n\x04keys\x18\x03 \x03(\t\"\x1d\n\rExistsRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"-\n\rExpireRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07seconds\x18\x02 \x01(\x04\"3\n\x0ePExpireRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x14\n\x0cmilliseconds\x18\x02 \x01(\x04\"\x1d\n\x0ePersistRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x19\n\nTtlRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1a\n\x0bPTtlRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1c\n\x0bTtlResponse\x12\r\n\x05value\x18\x01 \x01(\x03\"\x1a\n\x0bTypeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"!\n\x0cTypeResponse\x12\x11\n\ttype_name\x18\x01 \x01(\t\"\x1e\n\x0bKeysRequest\x12\x0f\n\x07pattern\x18\x01 \x01(\t\"\x1c\n\x0cKeysResponse\x12\x0c\n\x04keys\x18\x01 \x03(\t\"-\n\rRenameRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07new_key\x18\x02 \x01(\t\"N\n\x0bScanRequest\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\x04\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x14\n\x07pattern\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_pattern\",\n\x0cScanResponse\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\x04\x12\x0c\n\x04keys\x18\x02 \x03(\t\"C\n\x0b\x43opyRequest\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\t\x12\x0f\n\x07replace\x18\x03 \x01(\x08\"\x12\n\x10RandomKeyRequest\"\x1c\n\x0cTouchRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\" \n\x11\x45xpiretimeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"!\n\x12PexpiretimeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"1\n\x0f\x45xpireatRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\"5\n\x10PexpireatRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x14\n\x0ctimestamp_ms\x18\x02 \x01(\x04\"+\n\x0cLPushRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06values\x18\x02 \x03(\x0c\"+\n\x0cRPushRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06values\x18\x02 \x03(\x0c\"\x1a\n\x0bLPopRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1a\n\x0bRPopRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"9\n\rLRangeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0c\n\x04stop\x18\x03 \x01(\x03\"\x1f\n\rArrayResponse\x12\x0e\n\x06values\x18\x01 \x03(\x0c\"\x1a\n\x0bLLenRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"+\n\rLIndexRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05index\x18\x02 \x01(\x03\"8\n\x0bLSetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05index\x18\x02 \x01(\x03\x12\r\n\x05value\x18\x03 \x01(\x0c\"8\n\x0cLTrimRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0c\n\x04stop\x18\x03 \x01(\x03\"K\n\x0eLInsertRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06\x62\x65\x66ore\x18\x02 \x01(\x08\x12\r\n\x05pivot\x18\x03 \x01(\x0c\x12\r\n\x05value\x18\x04 \x01(\x0c\"8\n\x0bLRemRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\x12\r\n\x05value\x18\x03 \x01(\x0c\"G\n\x0bLPosRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_count\"W\n\x0cLMoveRequest\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\t\x12\x10\n\x08src_left\x18\x03 \x01(\x08\x12\x10\n\x08\x64st_left\x18\x04 \x01(\x08\"9\n\x0cLmpopRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x0c\n\x04left\x18\x02 \x01(\x08\x12\r\n\x05\x63ount\x18\x03 \x01(\r\"=\n\rLmpopResponse\x12\r\n\x05\x66ound\x18\x01 \x01(\x08\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x10\n\x08\x65lements\x18\x03 \x03(\x0c\"@\n\x0bHSetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x14.ember.v1.FieldValue\"*\n\nFieldValue\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\")\n\x0bHGetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\"\x1d\n\x0eHGetAllRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"4\n\x0cHashResponse\x12$\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x14.ember.v1.FieldValue\"*\n\x0bHDelRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06\x66ields\x18\x02 \x03(\t\",\n\x0eHExistsRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\"\x1a\n\x0bHLenRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\";\n\x0eHIncrByRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x03 \x01(\x03\"\x1b\n\x0cHKeysRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1b\n\x0cHValsRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"+\n\x0cHMGetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06\x66ields\x18\x02 \x03(\t\"@\n\x15OptionalArrayResponse\x12\'\n\x06values\x18\x01 \x03(\x0b\x32\x17.ember.v1.OptionalValue\"\\\n\x0cHScanRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06\x63ursor\x18\x02 \x01(\x04\x12\x14\n\x07pattern\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x63ount\x18\x04 \x01(\rB\n\n\x08_pattern\"E\n\rHScanResponse\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\x04\x12$\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x14.ember.v1.FieldValue\"W\n\x11HrandfieldRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x11\n\thas_count\x18\x02 \x01(\x08\x12\r\n\x05\x63ount\x18\x03 \x01(\x05\x12\x13\n\x0bwith_values\x18\x04 \x01(\x08\"+\n\x0bSAddRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07members\x18\x02 \x03(\t\"+\n\x0bSRemRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07members\x18\x02 \x03(\t\"\x1e\n\x0fSMembersRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"/\n\x10SIsMemberRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06member\x18\x02 \x01(\t\"\x1b\n\x0cSCardRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1d\n\rSUnionRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"\x1d\n\rSInterRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"\x1c\n\x0cSDiffRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"7\n\x12SUnionStoreRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x03(\t\"7\n\x12SInterStoreRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x03(\t\"6\n\x11SDiffStoreRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x03(\t\"0\n\x12SRandMemberRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\")\n\x0bSPopRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"1\n\x11SMisMemberRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07members\x18\x02 \x03(\t\"C\n\x0cSmoveRequest\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\t\x12\x0e\n\x06member\x18\x03 \x01(\t\"0\n\x11SintercardRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\r\n\x05limit\x18\x02 \x01(\x04\"\\\n\x0cSScanRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06\x63ursor\x18\x02 \x01(\x04\x12\x14\n\x07pattern\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x63ount\x18\x04 \x01(\rB\n\n\x08_pattern\"0\n\rSScanResponse\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\x04\x12\x0f\n\x07members\x18\x02 \x03(\t\"~\n\x0bZAddRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x07members\x18\x02 \x03(\x0b\x32\x15.ember.v1.ScoreMember\x12\n\n\x02nx\x18\x03 \x01(\x08\x12\n\n\x02xx\x18\x04 \x01(\x08\x12\n\n\x02gt\x18\x05 \x01(\x08\x12\n\n\x02lt\x18\x06 \x01(\x08\x12\n\n\x02\x63h\x18\x07 \x01(\x08\",\n\x0bScoreMember\x12\r\n\x05score\x18\x01 \x01(\x01\x12\x0e\n\x06member\x18\x02 \x01(\t\"+\n\x0bZRemRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07members\x18\x02 \x03(\t\",\n\rZScoreRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06member\x18\x02 \x01(\t\"5\n\x15OptionalFloatResponse\x12\x12\n\x05value\x18\x01 \x01(\x01H\x00\x88\x01\x01\x42\x08\n\x06_value\"+\n\x0cZRankRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06member\x18\x02 \x01(\t\"3\n\x13OptionalIntResponse\x12\x12\n\x05value\x18\x01 \x01(\x03H\x00\x88\x01\x01\x42\x08\n\x06_value\"\x1b\n\x0cZCardRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"N\n\rZRangeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0c\n\x04stop\x18\x03 \x01(\x03\x12\x13\n\x0bwith_scores\x18\x04 \x01(\x08\"8\n\x0eZRangeResponse\x12&\n\x07members\x18\x01 \x03(\x0b\x32\x15.ember.v1.ScoreMember\".\n\x0fZRevRankRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06member\x18\x02 \x01(\t\"Q\n\x10ZRevRangeRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0c\n\x04stop\x18\x03 \x01(\x03\x12\x13\n\x0bwith_scores\x18\x04 \x01(\x08\"6\n\rZCountRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0b\n\x03min\x18\x02 \x01(\t\x12\x0b\n\x03max\x18\x03 \x01(\t\"<\n\x0eZIncrByRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x02 \x01(\x01\x12\x0e\n\x06member\x18\x03 \x01(\t\"\x90\x01\n\x14ZRangeByScoreRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0b\n\x03min\x18\x02 \x01(\t\x12\x0b\n\x03max\x18\x03 \x01(\t\x12\x13\n\x06offset\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x13\n\x0bwith_scores\x18\x06 \x01(\x08\x42\t\n\x07_offsetB\x08\n\x06_count\"\x93\x01\n\x17ZRevRangeByScoreRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0b\n\x03max\x18\x02 \x01(\t\x12\x0b\n\x03min\x18\x03 \x01(\t\x12\x13\n\x06offset\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x13\n\x0bwith_scores\x18\x06 \x01(\x08\x42\t\n\x07_offsetB\x08\n\x06_count\",\n\x0eZPopMinRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\r\",\n\x0eZPopMaxRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"1\n\x0cZDiffRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x13\n\x0bwith_scores\x18\x02 \x01(\x08\"2\n\rZInterRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x13\n\x0bwith_scores\x18\x02 \x01(\x08\"2\n\rZUnionRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x13\n\x0bwith_scores\x18\x02 \x01(\x08\"8\n\x0cZmpopRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x0b\n\x03min\x18\x02 \x01(\x08\x12\r\n\x05\x63ount\x18\x03 \x01(\r\"S\n\rZmpopResponse\x12\r\n\x05\x66ound\x18\x01 \x01(\x08\x12\x0b\n\x03key\x18\x02 \x01(\t\x12&\n\x07members\x18\x03 \x03(\x0b\x32\x15.ember.v1.ScoreMember\"X\n\x12ZrandmemberRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x11\n\thas_count\x18\x02 \x01(\x08\x12\r\n\x05\x63ount\x18\x03 \x01(\x05\x12\x13\n\x0bwith_scores\x18\x04 \x01(\x08\"\\\n\x0cZScanRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06\x63ursor\x18\x02 \x01(\x04\x12\x14\n\x07pattern\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x63ount\x18\x04 \x01(\rB\n\n\x08_pattern\"G\n\rZScanResponse\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\x04\x12&\n\x07members\x18\x02 \x03(\x0b\x32\x15.ember.v1.ScoreMember\"\xf9\x01\n\x0bVAddRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07\x65lement\x18\x02 \x01(\t\x12\x12\n\x06vector\x18\x03 \x03(\x02\x42\x02\x10\x01\x12&\n\x06metric\x18\x04 \x01(\x0e\x32\x16.ember.v1.VectorMetric\x12\x32\n\x0cquantization\x18\x05 \x01(\x0e\x32\x1c.ember.v1.VectorQuantization\x12\x19\n\x0c\x63onnectivity\x18\x06 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0f\x65\x66_construction\x18\x07 \x01(\rH\x01\x88\x01\x01\x42\x0f\n\r_connectivityB\x12\n\x10_ef_construction\"5\n\x0eVAddBatchEntry\x12\x0f\n\x07\x65lement\x18\x01 \x01(\t\x12\x12\n\x06vector\x18\x02 \x03(\x02\x42\x02\x10\x01\"\x84\x02\n\x10VAddBatchRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x07\x65ntries\x18\x02 \x03(\x0b\x32\x18.ember.v1.VAddBatchEntry\x12&\n\x06metric\x18\x03 \x01(\x0e\x32\x16.ember.v1.VectorMetric\x12\x32\n\x0cquantization\x18\x04 \x01(\x0e\x32\x1c.ember.v1.VectorQuantization\x12\x19\n\x0c\x63onnectivity\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0f\x65\x66_construction\x18\x06 \x01(\rH\x01\x88\x01\x01\x42\x0f\n\r_connectivityB\x12\n\x10_ef_construction\"b\n\x0bVSimRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x11\n\x05query\x18\x02 \x03(\x02\x42\x02\x10\x01\x12\r\n\x05\x63ount\x18\x03 \x01(\r\x12\x16\n\tef_search\x18\x04 \x01(\rH\x00\x88\x01\x01\x42\x0c\n\n_ef_search\"5\n\x0cVSimResponse\x12%\n\x07results\x18\x01 \x03(\x0b\x32\x14.ember.v1.VSimResult\"/\n\nVSimResult\x12\x0f\n\x07\x65lement\x18\x01 \x01(\t\x12\x10\n\x08\x64istance\x18\x02 \x01(\x02\"+\n\x0bVRemRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07\x65lement\x18\x02 \x01(\t\"+\n\x0bVGetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07\x65lement\x18\x02 \x01(\t\"B\n\x0cVGetResponse\x12\x13\n\x06\x65xists\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\x06vector\x18\x02 \x03(\x02\x42\x02\x10\x01\x42\t\n\x07_exists\"\x1b\n\x0cVCardRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1a\n\x0bVDimRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1b\n\x0cVInfoRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"C\n\rVInfoResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\x12\"\n\x04info\x18\x02 \x03(\x0b\x32\x14.ember.v1.FieldValue\"/\n\x0bPingRequest\x12\x14\n\x07message\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_message\"\x1f\n\x0cPingResponse\x12\x0f\n\x07message\x18\x01 \x01(\t\"\x1f\n\x0e\x46lushDbRequest\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\"\x0f\n\rDbSizeRequest\"/\n\x0bInfoRequest\x12\x14\n\x07section\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_section\"\x1c\n\x0cInfoResponse\x12\x0c\n\x04info\x18\x01 \x01(\t\"\x1e\n\x0b\x45\x63hoRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\"\x1f\n\x0c\x45\x63hoResponse\x12\x0f\n\x07message\x18\x01 \x01(\t\"\x1a\n\x0b\x44\x65\x63rRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1d\n\rUnlinkRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"\x0f\n\rBgSaveRequest\"\x15\n\x13\x42gRewriteAofRequest\"\r\n\x0bTimeRequest\"5\n\x0cTimeResponse\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\x14\n\x0cmicroseconds\x18\x02 \x01(\x03\"\x11\n\x0fLastSaveRequest\"1\n\x11SlowLogGetRequest\x12\x12\n\x05\x63ount\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_count\"=\n\x12SlowLogGetResponse\x12\'\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x16.ember.v1.SlowLogEntry\"\\\n\x0cSlowLogEntry\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x16\n\x0etimestamp_unix\x18\x02 \x01(\x04\x12\x17\n\x0f\x64uration_micros\x18\x03 \x01(\x04\x12\x0f\n\x07\x63ommand\x18\x04 \x01(\t\"\x13\n\x11SlowLogLenRequest\"\x15\n\x13SlowLogResetRequest\"2\n\x0ePublishRequest\x12\x0f\n\x07\x63hannel\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\x0c\"6\n\x10SubscribeRequest\x12\x10\n\x08\x63hannels\x18\x01 \x03(\t\x12\x10\n\x08patterns\x18\x02 \x03(\t\"_\n\x0eSubscribeEvent\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x02 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x14\n\x07pattern\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_pattern\"9\n\x15PubSubChannelsRequest\x12\x14\n\x07pattern\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_pattern\"\'\n\x13PubSubNumSubRequest\x12\x10\n\x08\x63hannels\x18\x01 \x03(\t\">\n\x14PubSubNumSubResponse\x12&\n\x06\x63ounts\x18\x01 \x03(\x0b\x32\x16.ember.v1.ChannelCount\"\x15\n\x13PubSubNumPatRequest\".\n\x0c\x43hannelCount\x12\x0f\n\x07\x63hannel\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\"\xfb+\n\x0fPipelineRequest\x12\n\n\x02id\x18\x01 \x01(\x04\x12#\n\x03get\x18\x02 \x01(\x0b\x32\x14.ember.v1.GetRequestH\x00\x12#\n\x03set\x18\x03 \x01(\x0b\x32\x14.ember.v1.SetRequestH\x00\x12#\n\x03\x64\x65l\x18\x04 \x01(\x0b\x32\x14.ember.v1.DelRequestH\x00\x12)\n\x06\x65xists\x18\x05 \x01(\x0b\x32\x17.ember.v1.ExistsRequestH\x00\x12%\n\x04incr\x18\x06 \x01(\x0b\x32\x15.ember.v1.IncrRequestH\x00\x12*\n\x07incr_by\x18\x07 \x01(\x0b\x32\x17.ember.v1.IncrByRequestH\x00\x12*\n\x07\x64\x65\x63r_by\x18\x08 \x01(\x0b\x32\x17.ember.v1.DecrByRequestH\x00\x12\x35\n\rincr_by_float\x18\t \x01(\x0b\x32\x1c.ember.v1.IncrByFloatRequestH\x00\x12)\n\x06\x61ppend\x18\n \x01(\x0b\x32\x17.ember.v1.AppendRequestH\x00\x12)\n\x06strlen\x18\x0b \x01(\x0b\x32\x17.ember.v1.StrlenRequestH\x00\x12)\n\x06\x65xpire\x18\x0c \x01(\x0b\x32\x17.ember.v1.ExpireRequestH\x00\x12+\n\x07pexpire\x18\r \x01(\x0b\x32\x18.ember.v1.PExpireRequestH\x00\x12+\n\x07persist\x18\x0e \x01(\x0b\x32\x18.ember.v1.PersistRequestH\x00\x12#\n\x03ttl\x18\x0f \x01(\x0b\x32\x14.ember.v1.TtlRequestH\x00\x12%\n\x04pttl\x18\x10 \x01(\x0b\x32\x15.ember.v1.PTtlRequestH\x00\x12%\n\x04type\x18\x11 \x01(\x0b\x32\x15.ember.v1.TypeRequestH\x00\x12\'\n\x05lpush\x18\x12 \x01(\x0b\x32\x16.ember.v1.LPushRequestH\x00\x12\'\n\x05rpush\x18\x13 \x01(\x0b\x32\x16.ember.v1.RPushRequestH\x00\x12%\n\x04lpop\x18\x14 \x01(\x0b\x32\x15.ember.v1.LPopRequestH\x00\x12%\n\x04rpop\x18\x15 \x01(\x0b\x32\x15.ember.v1.RPopRequestH\x00\x12)\n\x06lrange\x18\x16 \x01(\x0b\x32\x17.ember.v1.LRangeRequestH\x00\x12%\n\x04llen\x18\x17 \x01(\x0b\x32\x15.ember.v1.LLenRequestH\x00\x12%\n\x04hset\x18\x18 \x01(\x0b\x32\x15.ember.v1.HSetRequestH\x00\x12%\n\x04hget\x18\x19 \x01(\x0b\x32\x15.ember.v1.HGetRequestH\x00\x12+\n\x07hgetall\x18\x1a \x01(\x0b\x32\x18.ember.v1.HGetAllRequestH\x00\x12%\n\x04hdel\x18\x1b \x01(\x0b\x32\x15.ember.v1.HDelRequestH\x00\x12+\n\x07hexists\x18\x1c \x01(\x0b\x32\x18.ember.v1.HExistsRequestH\x00\x12%\n\x04hlen\x18\x1d \x01(\x0b\x32\x15.ember.v1.HLenRequestH\x00\x12,\n\x08hincr_by\x18\x1e \x01(\x0b\x32\x18.ember.v1.HIncrByRequestH\x00\x12\'\n\x05hkeys\x18\x1f \x01(\x0b\x32\x16.ember.v1.HKeysRequestH\x00\x12\'\n\x05hvals\x18 \x01(\x0b\x32\x16.ember.v1.HValsRequestH\x00\x12\'\n\x05hmget\x18! \x01(\x0b\x32\x16.ember.v1.HMGetRequestH\x00\x12%\n\x04sadd\x18\" \x01(\x0b\x32\x15.ember.v1.SAddRequestH\x00\x12%\n\x04srem\x18# \x01(\x0b\x32\x15.ember.v1.SRemRequestH\x00\x12-\n\x08smembers\x18$ \x01(\x0b\x32\x19.ember.v1.SMembersRequestH\x00\x12/\n\tsismember\x18% \x01(\x0b\x32\x1a.ember.v1.SIsMemberRequestH\x00\x12\'\n\x05scard\x18& \x01(\x0b\x32\x16.ember.v1.SCardRequestH\x00\x12%\n\x04zadd\x18\' \x01(\x0b\x32\x15.ember.v1.ZAddRequestH\x00\x12%\n\x04zrem\x18( \x01(\x0b\x32\x15.ember.v1.ZRemRequestH\x00\x12)\n\x06zscore\x18) \x01(\x0b\x32\x17.ember.v1.ZScoreRequestH\x00\x12\'\n\x05zrank\x18* \x01(\x0b\x32\x16.ember.v1.ZRankRequestH\x00\x12\'\n\x05zcard\x18+ \x01(\x0b\x32\x16.ember.v1.ZCardRequestH\x00\x12)\n\x06zrange\x18, \x01(\x0b\x32\x17.ember.v1.ZRangeRequestH\x00\x12%\n\x04vadd\x18- \x01(\x0b\x32\x15.ember.v1.VAddRequestH\x00\x12%\n\x04vsim\x18. \x01(\x0b\x32\x15.ember.v1.VSimRequestH\x00\x12%\n\x04vrem\x18/ \x01(\x0b\x32\x15.ember.v1.VRemRequestH\x00\x12%\n\x04vget\x18\x30 \x01(\x0b\x32\x15.ember.v1.VGetRequestH\x00\x12\'\n\x05vcard\x18\x31 \x01(\x0b\x32\x16.ember.v1.VCardRequestH\x00\x12%\n\x04vdim\x18\x32 \x01(\x0b\x32\x15.ember.v1.VDimRequestH\x00\x12\'\n\x05vinfo\x18\x33 \x01(\x0b\x32\x16.ember.v1.VInfoRequestH\x00\x12%\n\x04ping\x18\x34 \x01(\x0b\x32\x15.ember.v1.PingRequestH\x00\x12+\n\x07\x66lushdb\x18\x35 \x01(\x0b\x32\x18.ember.v1.FlushDbRequestH\x00\x12)\n\x06\x64\x62size\x18\x36 \x01(\x0b\x32\x17.ember.v1.DbSizeRequestH\x00\x12%\n\x04mget\x18\x37 \x01(\x0b\x32\x15.ember.v1.MGetRequestH\x00\x12%\n\x04mset\x18\x38 \x01(\x0b\x32\x15.ember.v1.MSetRequestH\x00\x12%\n\x04keys\x18\x39 \x01(\x0b\x32\x15.ember.v1.KeysRequestH\x00\x12)\n\x06rename\x18: \x01(\x0b\x32\x17.ember.v1.RenameRequestH\x00\x12%\n\x04scan\x18; \x01(\x0b\x32\x15.ember.v1.ScanRequestH\x00\x12%\n\x04\x65\x63ho\x18< \x01(\x0b\x32\x15.ember.v1.EchoRequestH\x00\x12%\n\x04\x64\x65\x63r\x18= \x01(\x0b\x32\x15.ember.v1.DecrRequestH\x00\x12)\n\x06unlink\x18> \x01(\x0b\x32\x17.ember.v1.UnlinkRequestH\x00\x12)\n\x06\x62gsave\x18? \x01(\x0b\x32\x17.ember.v1.BgSaveRequestH\x00\x12\x35\n\x0c\x62grewriteaof\x18@ \x01(\x0b\x32\x1d.ember.v1.BgRewriteAofRequestH\x00\x12\x32\n\x0bslowlog_get\x18\x41 \x01(\x0b\x32\x1b.ember.v1.SlowLogGetRequestH\x00\x12\x32\n\x0bslowlog_len\x18\x42 \x01(\x0b\x32\x1b.ember.v1.SlowLogLenRequestH\x00\x12\x36\n\rslowlog_reset\x18\x43 \x01(\x0b\x32\x1d.ember.v1.SlowLogResetRequestH\x00\x12+\n\x07publish\x18\x44 \x01(\x0b\x32\x18.ember.v1.PublishRequestH\x00\x12:\n\x0fpubsub_channels\x18\x45 \x01(\x0b\x32\x1f.ember.v1.PubSubChannelsRequestH\x00\x12\x36\n\rpubsub_numsub\x18\x46 \x01(\x0b\x32\x1d.ember.v1.PubSubNumSubRequestH\x00\x12\x36\n\rpubsub_numpat\x18G \x01(\x0b\x32\x1d.ember.v1.PubSubNumPatRequestH\x00\x12\x30\n\nvadd_batch\x18H \x01(\x0b\x32\x1a.ember.v1.VAddBatchRequestH\x00\x12*\n\x07get_del\x18I \x01(\x0b\x32\x17.ember.v1.GetDelRequestH\x00\x12(\n\x06get_ex\x18J \x01(\x0b\x32\x16.ember.v1.GetExRequestH\x00\x12.\n\tget_range\x18K \x01(\x0b\x32\x19.ember.v1.GetRangeRequestH\x00\x12.\n\tset_range\x18L \x01(\x0b\x32\x19.ember.v1.SetRangeRequestH\x00\x12%\n\x04\x63opy\x18M \x01(\x0b\x32\x15.ember.v1.CopyRequestH\x00\x12\x30\n\nrandom_key\x18N \x01(\x0b\x32\x1a.ember.v1.RandomKeyRequestH\x00\x12\'\n\x05touch\x18O \x01(\x0b\x32\x16.ember.v1.TouchRequestH\x00\x12)\n\x06lindex\x18P \x01(\x0b\x32\x17.ember.v1.LIndexRequestH\x00\x12%\n\x04lset\x18Q \x01(\x0b\x32\x15.ember.v1.LSetRequestH\x00\x12\'\n\x05ltrim\x18R \x01(\x0b\x32\x16.ember.v1.LTrimRequestH\x00\x12+\n\x07linsert\x18S \x01(\x0b\x32\x18.ember.v1.LInsertRequestH\x00\x12%\n\x04lrem\x18T \x01(\x0b\x32\x15.ember.v1.LRemRequestH\x00\x12%\n\x04lpos\x18U \x01(\x0b\x32\x15.ember.v1.LPosRequestH\x00\x12\'\n\x05lmove\x18V \x01(\x0b\x32\x16.ember.v1.LMoveRequestH\x00\x12)\n\x06sunion\x18W \x01(\x0b\x32\x17.ember.v1.SUnionRequestH\x00\x12)\n\x06sinter\x18X \x01(\x0b\x32\x17.ember.v1.SInterRequestH\x00\x12\'\n\x05sdiff\x18Y \x01(\x0b\x32\x16.ember.v1.SDiffRequestH\x00\x12\x34\n\x0csunion_store\x18Z \x01(\x0b\x32\x1c.ember.v1.SUnionStoreRequestH\x00\x12\x34\n\x0csinter_store\x18[ \x01(\x0b\x32\x1c.ember.v1.SInterStoreRequestH\x00\x12\x32\n\x0bsdiff_store\x18\\ \x01(\x0b\x32\x1b.ember.v1.SDiffStoreRequestH\x00\x12\x34\n\x0csrand_member\x18] \x01(\x0b\x32\x1c.ember.v1.SRandMemberRequestH\x00\x12%\n\x04spop\x18^ \x01(\x0b\x32\x15.ember.v1.SPopRequestH\x00\x12\x31\n\nsmismember\x18_ \x01(\x0b\x32\x1b.ember.v1.SMisMemberRequestH\x00\x12\'\n\x05hscan\x18` \x01(\x0b\x32\x16.ember.v1.HScanRequestH\x00\x12.\n\tzrev_rank\x18\x61 \x01(\x0b\x32\x19.ember.v1.ZRevRankRequestH\x00\x12\x30\n\nzrev_range\x18\x62 \x01(\x0b\x32\x1a.ember.v1.ZRevRangeRequestH\x00\x12)\n\x06zcount\x18\x63 \x01(\x0b\x32\x17.ember.v1.ZCountRequestH\x00\x12+\n\x07zincrby\x18\x64 \x01(\x0b\x32\x18.ember.v1.ZIncrByRequestH\x00\x12\x39\n\x0fzrange_by_score\x18\x65 \x01(\x0b\x32\x1e.ember.v1.ZRangeByScoreRequestH\x00\x12@\n\x13zrev_range_by_score\x18\x66 \x01(\x0b\x32!.ember.v1.ZRevRangeByScoreRequestH\x00\x12+\n\x07zpopmin\x18g \x01(\x0b\x32\x18.ember.v1.ZPopMinRequestH\x00\x12+\n\x07zpopmax\x18h \x01(\x0b\x32\x18.ember.v1.ZPopMaxRequestH\x00\x12\'\n\x05zdiff\x18i \x01(\x0b\x32\x16.ember.v1.ZDiffRequestH\x00\x12)\n\x06zinter\x18j \x01(\x0b\x32\x17.ember.v1.ZInterRequestH\x00\x12)\n\x06zunion\x18k \x01(\x0b\x32\x17.ember.v1.ZUnionRequestH\x00\x12\'\n\x05zscan\x18l \x01(\x0b\x32\x16.ember.v1.ZScanRequestH\x00\x12\'\n\x05sscan\x18m \x01(\x0b\x32\x16.ember.v1.SScanRequestH\x00\x12%\n\x04time\x18n \x01(\x0b\x32\x15.ember.v1.TimeRequestH\x00\x12.\n\tlast_save\x18o \x01(\x0b\x32\x19.ember.v1.LastSaveRequestH\x00\x12\x31\n\nexpiretime\x18p \x01(\x0b\x32\x1b.ember.v1.ExpiretimeRequestH\x00\x12\x33\n\x0bpexpiretime\x18q \x01(\x0b\x32\x1c.ember.v1.PexpiretimeRequestH\x00\x12-\n\x08\x65xpireat\x18r \x01(\x0b\x32\x19.ember.v1.ExpireatRequestH\x00\x12/\n\tpexpireat\x18s \x01(\x0b\x32\x1a.ember.v1.PexpireatRequestH\x00\x12)\n\x06getset\x18t \x01(\x0b\x32\x17.ember.v1.GetsetRequestH\x00\x12)\n\x06msetnx\x18u \x01(\x0b\x32\x17.ember.v1.MsetnxRequestH\x00\x12)\n\x06getbit\x18v \x01(\x0b\x32\x17.ember.v1.GetbitRequestH\x00\x12)\n\x06setbit\x18w \x01(\x0b\x32\x17.ember.v1.SetbitRequestH\x00\x12-\n\x08\x62itcount\x18x \x01(\x0b\x32\x19.ember.v1.BitcountRequestH\x00\x12)\n\x06\x62itpos\x18y \x01(\x0b\x32\x17.ember.v1.BitposRequestH\x00\x12\'\n\x05\x62itop\x18z \x01(\x0b\x32\x16.ember.v1.BitopRequestH\x00\x12\'\n\x05smove\x18{ \x01(\x0b\x32\x16.ember.v1.SmoveRequestH\x00\x12\x31\n\nsintercard\x18| \x01(\x0b\x32\x1b.ember.v1.SintercardRequestH\x00\x12\'\n\x05lmpop\x18} \x01(\x0b\x32\x16.ember.v1.LmpopRequestH\x00\x12\'\n\x05zmpop\x18~ \x01(\x0b\x32\x16.ember.v1.ZmpopRequestH\x00\x12\x31\n\nhrandfield\x18\x7f \x01(\x0b\x32\x1b.ember.v1.HrandfieldRequestH\x00\x12\x34\n\x0bzrandmember\x18\x80\x01 \x01(\x0b\x32\x1c.ember.v1.ZrandmemberRequestH\x00\x42\t\n\x07\x63ommand\"\x9f\x0c\n\x10PipelineResponse\x12\n\n\x02id\x18\x01 \x01(\x04\x12$\n\x03get\x18\x02 \x01(\x0b\x32\x15.ember.v1.GetResponseH\x00\x12$\n\x03set\x18\x03 \x01(\x0b\x32\x15.ember.v1.SetResponseH\x00\x12$\n\x03\x64\x65l\x18\x04 \x01(\x0b\x32\x15.ember.v1.DelResponseH\x00\x12(\n\x07int_val\x18\x05 \x01(\x0b\x32\x15.ember.v1.IntResponseH\x00\x12*\n\x08\x62ool_val\x18\x06 \x01(\x0b\x32\x16.ember.v1.BoolResponseH\x00\x12,\n\tfloat_val\x18\x07 \x01(\x0b\x32\x17.ember.v1.FloatResponseH\x00\x12*\n\x06status\x18\x08 \x01(\x0b\x32\x18.ember.v1.StatusResponseH\x00\x12$\n\x03ttl\x18\t \x01(\x0b\x32\x15.ember.v1.TtlResponseH\x00\x12&\n\x04type\x18\n \x01(\x0b\x32\x16.ember.v1.TypeResponseH\x00\x12(\n\x05\x61rray\x18\x0b \x01(\x0b\x32\x17.ember.v1.ArrayResponseH\x00\x12&\n\x04hash\x18\x0c \x01(\x0b\x32\x16.ember.v1.HashResponseH\x00\x12\x39\n\x0eoptional_array\x18\r \x01(\x0b\x32\x1f.ember.v1.OptionalArrayResponseH\x00\x12&\n\x04keys\x18\x0e \x01(\x0b\x32\x16.ember.v1.KeysResponseH\x00\x12&\n\x04scan\x18\x0f \x01(\x0b\x32\x16.ember.v1.ScanResponseH\x00\x12\x39\n\x0eoptional_float\x18\x10 \x01(\x0b\x32\x1f.ember.v1.OptionalFloatResponseH\x00\x12\x35\n\x0coptional_int\x18\x11 \x01(\x0b\x32\x1d.ember.v1.OptionalIntResponseH\x00\x12*\n\x06zrange\x18\x12 \x01(\x0b\x32\x18.ember.v1.ZRangeResponseH\x00\x12&\n\x04vsim\x18\x13 \x01(\x0b\x32\x16.ember.v1.VSimResponseH\x00\x12&\n\x04vget\x18\x14 \x01(\x0b\x32\x16.ember.v1.VGetResponseH\x00\x12(\n\x05vinfo\x18\x15 \x01(\x0b\x32\x17.ember.v1.VInfoResponseH\x00\x12&\n\x04mget\x18\x16 \x01(\x0b\x32\x16.ember.v1.MGetResponseH\x00\x12&\n\x04mset\x18\x17 \x01(\x0b\x32\x16.ember.v1.MSetResponseH\x00\x12&\n\x04ping\x18\x18 \x01(\x0b\x32\x16.ember.v1.PingResponseH\x00\x12(\n\x05\x65rror\x18\x19 \x01(\x0b\x32\x17.ember.v1.ErrorResponseH\x00\x12&\n\x04info\x18\x1a \x01(\x0b\x32\x16.ember.v1.InfoResponseH\x00\x12&\n\x04\x65\x63ho\x18\x1b \x01(\x0b\x32\x16.ember.v1.EchoResponseH\x00\x12\x33\n\x0bslowlog_get\x18\x1c \x01(\x0b\x32\x1c.ember.v1.SlowLogGetResponseH\x00\x12\x37\n\rpubsub_numsub\x18\x1d \x01(\x0b\x32\x1e.ember.v1.PubSubNumSubResponseH\x00\x12\x31\n\nbool_array\x18\x1e \x01(\x0b\x32\x1b.ember.v1.BoolArrayResponseH\x00\x12(\n\x05hscan\x18\x1f \x01(\x0b\x32\x17.ember.v1.HScanResponseH\x00\x12(\n\x05zscan\x18 \x01(\x0b\x32\x17.ember.v1.ZScanResponseH\x00\x12(\n\x05sscan\x18! \x01(\x0b\x32\x17.ember.v1.SScanResponseH\x00\x12+\n\ttime_resp\x18\" \x01(\x0b\x32\x16.ember.v1.TimeResponseH\x00\x12(\n\x05lmpop\x18# \x01(\x0b\x32\x17.ember.v1.LmpopResponseH\x00\x12(\n\x05zmpop\x18$ \x01(\x0b\x32\x17.ember.v1.ZmpopResponseH\x00\x42\x08\n\x06result\"C\n\rErrorResponse\x12\x0f\n\x07message\x18\x01 \x01(\t\x12!\n\x04kind\x18\x02 \x01(\x0e\x32\x13.ember.v1.ErrorKind*f\n\x0cVectorMetric\x12\x18\n\x14VECTOR_METRIC_COSINE\x10\x00\x12\x1b\n\x17VECTOR_METRIC_EUCLIDEAN\x10\x01\x12\x1f\n\x1bVECTOR_METRIC_INNER_PRODUCT\x10\x02*k\n\x12VectorQuantization\x12\x1c\n\x18VECTOR_QUANTIZATION_NONE\x10\x00\x12\x1b\n\x17VECTOR_QUANTIZATION_F16\x10\x01\x12\x1a\n\x16VECTOR_QUANTIZATION_I8\x10\x02*\x9a\x01\n\tErrorKind\x12\x1a\n\x16\x45RROR_KIND_UNSPECIFIED\x10\x00\x12\x19\n\x15\x45RROR_KIND_WRONG_TYPE\x10\x01\x12\x1c\n\x18\x45RROR_KIND_OUT_OF_MEMORY\x10\x02\x12\x17\n\x13\x45RROR_KIND_INTERNAL\x10\x03\x12\x1f\n\x1b\x45RROR_KIND_INVALID_ARGUMENT\x10\x04\x32\xa0=\n\nEmberCache\x12\x32\n\x03Get\x12\x14.ember.v1.GetRequest\x1a\x15.ember.v1.GetResponse\x12\x32\n\x03Set\x12\x14.ember.v1.SetRequest\x1a\x15.ember.v1.SetResponse\x12\x32\n\x03\x44\x65l\x12\x14.ember.v1.DelRequest\x1a\x15.ember.v1.DelResponse\x12\x35\n\x04MGet\x12\x15.ember.v1.MGetRequest\x1a\x16.ember.v1.MGetResponse\x12\x35\n\x04MSet\x12\x15.ember.v1.MSetRequest\x1a\x16.ember.v1.MSetResponse\x12\x34\n\x04Incr\x12\x15.ember.v1.IncrRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06IncrBy\x12\x17.ember.v1.IncrByRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06\x44\x65\x63rBy\x12\x17.ember.v1.DecrByRequest\x1a\x15.ember.v1.IntResponse\x12\x44\n\x0bIncrByFloat\x12\x1c.ember.v1.IncrByFloatRequest\x1a\x17.ember.v1.FloatResponse\x12\x38\n\x06\x41ppend\x12\x17.ember.v1.AppendRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06Strlen\x12\x17.ember.v1.StrlenRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06\x45xists\x12\x17.ember.v1.ExistsRequest\x1a\x15.ember.v1.IntResponse\x12\x39\n\x06\x45xpire\x12\x17.ember.v1.ExpireRequest\x1a\x16.ember.v1.BoolResponse\x12;\n\x07PExpire\x12\x18.ember.v1.PExpireRequest\x1a\x16.ember.v1.BoolResponse\x12;\n\x07Persist\x12\x18.ember.v1.PersistRequest\x1a\x16.ember.v1.BoolResponse\x12\x32\n\x03Ttl\x12\x14.ember.v1.TtlRequest\x1a\x15.ember.v1.TtlResponse\x12\x34\n\x04PTtl\x12\x15.ember.v1.PTtlRequest\x1a\x15.ember.v1.TtlResponse\x12\x35\n\x04Type\x12\x15.ember.v1.TypeRequest\x1a\x16.ember.v1.TypeResponse\x12\x35\n\x04Keys\x12\x15.ember.v1.KeysRequest\x1a\x16.ember.v1.KeysResponse\x12;\n\x06Rename\x12\x17.ember.v1.RenameRequest\x1a\x18.ember.v1.StatusResponse\x12\x35\n\x04Scan\x12\x15.ember.v1.ScanRequest\x1a\x16.ember.v1.ScanResponse\x12\x36\n\x05LPush\x12\x16.ember.v1.LPushRequest\x1a\x15.ember.v1.IntResponse\x12\x36\n\x05RPush\x12\x16.ember.v1.RPushRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04LPop\x12\x15.ember.v1.LPopRequest\x1a\x15.ember.v1.GetResponse\x12\x34\n\x04RPop\x12\x15.ember.v1.RPopRequest\x1a\x15.ember.v1.GetResponse\x12:\n\x06LRange\x12\x17.ember.v1.LRangeRequest\x1a\x17.ember.v1.ArrayResponse\x12\x34\n\x04LLen\x12\x15.ember.v1.LLenRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04HSet\x12\x15.ember.v1.HSetRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04HGet\x12\x15.ember.v1.HGetRequest\x1a\x15.ember.v1.GetResponse\x12;\n\x07HGetAll\x12\x18.ember.v1.HGetAllRequest\x1a\x16.ember.v1.HashResponse\x12\x34\n\x04HDel\x12\x15.ember.v1.HDelRequest\x1a\x15.ember.v1.IntResponse\x12;\n\x07HExists\x12\x18.ember.v1.HExistsRequest\x1a\x16.ember.v1.BoolResponse\x12\x34\n\x04HLen\x12\x15.ember.v1.HLenRequest\x1a\x15.ember.v1.IntResponse\x12:\n\x07HIncrBy\x12\x18.ember.v1.HIncrByRequest\x1a\x15.ember.v1.IntResponse\x12\x37\n\x05HKeys\x12\x16.ember.v1.HKeysRequest\x1a\x16.ember.v1.KeysResponse\x12\x38\n\x05HVals\x12\x16.ember.v1.HValsRequest\x1a\x17.ember.v1.ArrayResponse\x12@\n\x05HMGet\x12\x16.ember.v1.HMGetRequest\x1a\x1f.ember.v1.OptionalArrayResponse\x12\x34\n\x04SAdd\x12\x15.ember.v1.SAddRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04SRem\x12\x15.ember.v1.SRemRequest\x1a\x15.ember.v1.IntResponse\x12=\n\x08SMembers\x12\x19.ember.v1.SMembersRequest\x1a\x16.ember.v1.KeysResponse\x12?\n\tSIsMember\x12\x1a.ember.v1.SIsMemberRequest\x1a\x16.ember.v1.BoolResponse\x12\x36\n\x05SCard\x12\x16.ember.v1.SCardRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04ZAdd\x12\x15.ember.v1.ZAddRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04ZRem\x12\x15.ember.v1.ZRemRequest\x1a\x15.ember.v1.IntResponse\x12\x42\n\x06ZScore\x12\x17.ember.v1.ZScoreRequest\x1a\x1f.ember.v1.OptionalFloatResponse\x12>\n\x05ZRank\x12\x16.ember.v1.ZRankRequest\x1a\x1d.ember.v1.OptionalIntResponse\x12\x36\n\x05ZCard\x12\x16.ember.v1.ZCardRequest\x1a\x15.ember.v1.IntResponse\x12;\n\x06ZRange\x12\x17.ember.v1.ZRangeRequest\x1a\x18.ember.v1.ZRangeResponse\x12\x35\n\x04VAdd\x12\x15.ember.v1.VAddRequest\x1a\x16.ember.v1.BoolResponse\x12>\n\tVAddBatch\x12\x1a.ember.v1.VAddBatchRequest\x1a\x15.ember.v1.IntResponse\x12\x35\n\x04VSim\x12\x15.ember.v1.VSimRequest\x1a\x16.ember.v1.VSimResponse\x12\x35\n\x04VRem\x12\x15.ember.v1.VRemRequest\x1a\x16.ember.v1.BoolResponse\x12\x35\n\x04VGet\x12\x15.ember.v1.VGetRequest\x1a\x16.ember.v1.VGetResponse\x12\x36\n\x05VCard\x12\x16.ember.v1.VCardRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04VDim\x12\x15.ember.v1.VDimRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x05VInfo\x12\x16.ember.v1.VInfoRequest\x1a\x17.ember.v1.VInfoResponse\x12\x35\n\x04Ping\x12\x15.ember.v1.PingRequest\x1a\x16.ember.v1.PingResponse\x12\x35\n\x04\x45\x63ho\x12\x15.ember.v1.EchoRequest\x1a\x16.ember.v1.EchoResponse\x12\x34\n\x04\x44\x65\x63r\x12\x15.ember.v1.DecrRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06Unlink\x12\x17.ember.v1.UnlinkRequest\x1a\x15.ember.v1.DelResponse\x12=\n\x07\x46lushDb\x12\x18.ember.v1.FlushDbRequest\x1a\x18.ember.v1.StatusResponse\x12\x38\n\x06\x44\x62Size\x12\x17.ember.v1.DbSizeRequest\x1a\x15.ember.v1.IntResponse\x12\x35\n\x04Info\x12\x15.ember.v1.InfoRequest\x1a\x16.ember.v1.InfoResponse\x12;\n\x06\x42gSave\x12\x17.ember.v1.BgSaveRequest\x1a\x18.ember.v1.StatusResponse\x12G\n\x0c\x42gRewriteAof\x12\x1d.ember.v1.BgRewriteAofRequest\x1a\x18.ember.v1.StatusResponse\x12G\n\nSlowLogGet\x12\x1b.ember.v1.SlowLogGetRequest\x1a\x1c.ember.v1.SlowLogGetResponse\x12@\n\nSlowLogLen\x12\x1b.ember.v1.SlowLogLenRequest\x1a\x15.ember.v1.IntResponse\x12G\n\x0cSlowLogReset\x12\x1d.ember.v1.SlowLogResetRequest\x1a\x18.ember.v1.StatusResponse\x12:\n\x07Publish\x12\x18.ember.v1.PublishRequest\x1a\x15.ember.v1.IntResponse\x12\x43\n\tSubscribe\x12\x1a.ember.v1.SubscribeRequest\x1a\x18.ember.v1.SubscribeEvent0\x01\x12I\n\x0ePubSubChannels\x12\x1f.ember.v1.PubSubChannelsRequest\x1a\x16.ember.v1.KeysResponse\x12M\n\x0cPubSubNumSub\x12\x1d.ember.v1.PubSubNumSubRequest\x1a\x1e.ember.v1.PubSubNumSubResponse\x12\x44\n\x0cPubSubNumPat\x12\x1d.ember.v1.PubSubNumPatRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06GetDel\x12\x17.ember.v1.GetDelRequest\x1a\x15.ember.v1.GetResponse\x12\x36\n\x05GetEx\x12\x16.ember.v1.GetExRequest\x1a\x15.ember.v1.GetResponse\x12<\n\x08GetRange\x12\x19.ember.v1.GetRangeRequest\x1a\x15.ember.v1.GetResponse\x12<\n\x08SetRange\x12\x19.ember.v1.SetRangeRequest\x1a\x15.ember.v1.IntResponse\x12\x35\n\x04\x43opy\x12\x15.ember.v1.CopyRequest\x1a\x16.ember.v1.BoolResponse\x12>\n\tRandomKey\x12\x1a.ember.v1.RandomKeyRequest\x1a\x15.ember.v1.GetResponse\x12\x36\n\x05Touch\x12\x16.ember.v1.TouchRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06LIndex\x12\x17.ember.v1.LIndexRequest\x1a\x15.ember.v1.GetResponse\x12\x37\n\x04LSet\x12\x15.ember.v1.LSetRequest\x1a\x18.ember.v1.StatusResponse\x12\x39\n\x05LTrim\x12\x16.ember.v1.LTrimRequest\x1a\x18.ember.v1.StatusResponse\x12:\n\x07LInsert\x12\x18.ember.v1.LInsertRequest\x1a\x15.ember.v1.IntResponse\x12\x34\n\x04LRem\x12\x15.ember.v1.LRemRequest\x1a\x15.ember.v1.IntResponse\x12<\n\x04LPos\x12\x15.ember.v1.LPosRequest\x1a\x1d.ember.v1.OptionalIntResponse\x12\x36\n\x05LMove\x12\x16.ember.v1.LMoveRequest\x1a\x15.ember.v1.GetResponse\x12\x39\n\x06SUnion\x12\x17.ember.v1.SUnionRequest\x1a\x16.ember.v1.KeysResponse\x12\x39\n\x06SInter\x12\x17.ember.v1.SInterRequest\x1a\x16.ember.v1.KeysResponse\x12\x37\n\x05SDiff\x12\x16.ember.v1.SDiffRequest\x1a\x16.ember.v1.KeysResponse\x12\x42\n\x0bSUnionStore\x12\x1c.ember.v1.SUnionStoreRequest\x1a\x15.ember.v1.IntResponse\x12\x42\n\x0bSInterStore\x12\x1c.ember.v1.SInterStoreRequest\x1a\x15.ember.v1.IntResponse\x12@\n\nSDiffStore\x12\x1b.ember.v1.SDiffStoreRequest\x1a\x15.ember.v1.IntResponse\x12\x44\n\x0bSRandMember\x12\x1c.ember.v1.SRandMemberRequest\x1a\x17.ember.v1.ArrayResponse\x12\x36\n\x04SPop\x12\x15.ember.v1.SPopRequest\x1a\x17.ember.v1.ArrayResponse\x12\x46\n\nSMisMember\x12\x1b.ember.v1.SMisMemberRequest\x1a\x1b.ember.v1.BoolArrayResponse\x12\x38\n\x05HScan\x12\x16.ember.v1.HScanRequest\x1a\x17.ember.v1.HScanResponse\x12\x44\n\x08ZRevRank\x12\x19.ember.v1.ZRevRankRequest\x1a\x1d.ember.v1.OptionalIntResponse\x12\x41\n\tZRevRange\x12\x1a.ember.v1.ZRevRangeRequest\x1a\x18.ember.v1.ZRangeResponse\x12\x38\n\x06ZCount\x12\x17.ember.v1.ZCountRequest\x1a\x15.ember.v1.IntResponse\x12<\n\x07ZIncrBy\x12\x18.ember.v1.ZIncrByRequest\x1a\x17.ember.v1.FloatResponse\x12I\n\rZRangeByScore\x12\x1e.ember.v1.ZRangeByScoreRequest\x1a\x18.ember.v1.ZRangeResponse\x12O\n\x10ZRevRangeByScore\x12!.ember.v1.ZRevRangeByScoreRequest\x1a\x18.ember.v1.ZRangeResponse\x12=\n\x07ZPopMin\x12\x18.ember.v1.ZPopMinRequest\x1a\x18.ember.v1.ZRangeResponse\x12=\n\x07ZPopMax\x12\x18.ember.v1.ZPopMaxRequest\x1a\x18.ember.v1.ZRangeResponse\x12\x39\n\x05ZDiff\x12\x16.ember.v1.ZDiffRequest\x1a\x18.ember.v1.ZRangeResponse\x12;\n\x06ZInter\x12\x17.ember.v1.ZInterRequest\x1a\x18.ember.v1.ZRangeResponse\x12;\n\x06ZUnion\x12\x17.ember.v1.ZUnionRequest\x1a\x18.ember.v1.ZRangeResponse\x12\x38\n\x05ZScan\x12\x16.ember.v1.ZScanRequest\x1a\x17.ember.v1.ZScanResponse\x12\x38\n\x05SScan\x12\x16.ember.v1.SScanRequest\x1a\x17.ember.v1.SScanResponse\x12\x35\n\x04Time\x12\x15.ember.v1.TimeRequest\x1a\x16.ember.v1.TimeResponse\x12<\n\x08LastSave\x12\x19.ember.v1.LastSaveRequest\x1a\x15.ember.v1.IntResponse\x12@\n\nExpiretime\x12\x1b.ember.v1.ExpiretimeRequest\x1a\x15.ember.v1.IntResponse\x12\x42\n\x0bPexpiretime\x12\x1c.ember.v1.PexpiretimeRequest\x1a\x15.ember.v1.IntResponse\x12=\n\x08\x45xpireat\x12\x19.ember.v1.ExpireatRequest\x1a\x16.ember.v1.BoolResponse\x12?\n\tPexpireat\x12\x1a.ember.v1.PexpireatRequest\x1a\x16.ember.v1.BoolResponse\x12\x38\n\x06Getset\x12\x17.ember.v1.GetsetRequest\x1a\x15.ember.v1.GetResponse\x12\x39\n\x06Msetnx\x12\x17.ember.v1.MsetnxRequest\x1a\x16.ember.v1.BoolResponse\x12\x38\n\x06Getbit\x12\x17.ember.v1.GetbitRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06Setbit\x12\x17.ember.v1.SetbitRequest\x1a\x15.ember.v1.IntResponse\x12<\n\x08\x42itcount\x12\x19.ember.v1.BitcountRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x06\x42itpos\x12\x17.ember.v1.BitposRequest\x1a\x15.ember.v1.IntResponse\x12\x36\n\x05\x42itop\x12\x16.ember.v1.BitopRequest\x1a\x15.ember.v1.IntResponse\x12\x37\n\x05Smove\x12\x16.ember.v1.SmoveRequest\x1a\x16.ember.v1.BoolResponse\x12@\n\nSintercard\x12\x1b.ember.v1.SintercardRequest\x1a\x15.ember.v1.IntResponse\x12\x38\n\x05Lmpop\x12\x16.ember.v1.LmpopRequest\x1a\x17.ember.v1.LmpopResponse\x12\x38\n\x05Zmpop\x12\x16.ember.v1.ZmpopRequest\x1a\x17.ember.v1.ZmpopResponse\x12\x42\n\nHrandfield\x12\x1b.ember.v1.HrandfieldRequest\x1a\x17.ember.v1.ArrayResponse\x12\x44\n\x0bZrandmember\x12\x1c.ember.v1.ZrandmemberRequest\x1a\x17.ember.v1.ArrayResponse\x12\x45\n\x08Pipeline\x12\x19.ember.v1.PipelineRequest\x1a\x1a.ember.v1.PipelineResponse(\x01\x30\x01\x42\x31Z/github.com/kacy/ember-go/proto/ember/v1;emberv1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -40,12 +40,12 @@ _globals['_VSIMREQUEST'].fields_by_name['query']._serialized_options = b'\020\001' _globals['_VGETRESPONSE'].fields_by_name['vector']._loaded_options = None _globals['_VGETRESPONSE'].fields_by_name['vector']._serialized_options = b'\020\001' - _globals['_VECTORMETRIC']._serialized_start=14278 - _globals['_VECTORMETRIC']._serialized_end=14380 - _globals['_VECTORQUANTIZATION']._serialized_start=14382 - _globals['_VECTORQUANTIZATION']._serialized_end=14489 - _globals['_ERRORKIND']._serialized_start=14492 - _globals['_ERRORKIND']._serialized_end=14646 + _globals['_VECTORMETRIC']._serialized_start=16339 + _globals['_VECTORMETRIC']._serialized_end=16441 + _globals['_VECTORQUANTIZATION']._serialized_start=16443 + _globals['_VECTORQUANTIZATION']._serialized_end=16550 + _globals['_ERRORKIND']._serialized_start=16553 + _globals['_ERRORKIND']._serialized_end=16707 _globals['_INTRESPONSE']._serialized_start=34 _globals['_INTRESPONSE']._serialized_end=62 _globals['_BOOLRESPONSE']._serialized_start=64 @@ -100,264 +100,302 @@ _globals['_GETRANGEREQUEST']._serialized_end=1133 _globals['_SETRANGEREQUEST']._serialized_start=1135 _globals['_SETRANGEREQUEST']._serialized_end=1196 - _globals['_EXISTSREQUEST']._serialized_start=1198 - _globals['_EXISTSREQUEST']._serialized_end=1227 - _globals['_EXPIREREQUEST']._serialized_start=1229 - _globals['_EXPIREREQUEST']._serialized_end=1274 - _globals['_PEXPIREREQUEST']._serialized_start=1276 - _globals['_PEXPIREREQUEST']._serialized_end=1327 - _globals['_PERSISTREQUEST']._serialized_start=1329 - _globals['_PERSISTREQUEST']._serialized_end=1358 - _globals['_TTLREQUEST']._serialized_start=1360 - _globals['_TTLREQUEST']._serialized_end=1385 - _globals['_PTTLREQUEST']._serialized_start=1387 - _globals['_PTTLREQUEST']._serialized_end=1413 - _globals['_TTLRESPONSE']._serialized_start=1415 - _globals['_TTLRESPONSE']._serialized_end=1443 - _globals['_TYPEREQUEST']._serialized_start=1445 - _globals['_TYPEREQUEST']._serialized_end=1471 - _globals['_TYPERESPONSE']._serialized_start=1473 - _globals['_TYPERESPONSE']._serialized_end=1506 - _globals['_KEYSREQUEST']._serialized_start=1508 - _globals['_KEYSREQUEST']._serialized_end=1538 - _globals['_KEYSRESPONSE']._serialized_start=1540 - _globals['_KEYSRESPONSE']._serialized_end=1568 - _globals['_RENAMEREQUEST']._serialized_start=1570 - _globals['_RENAMEREQUEST']._serialized_end=1615 - _globals['_SCANREQUEST']._serialized_start=1617 - _globals['_SCANREQUEST']._serialized_end=1695 - _globals['_SCANRESPONSE']._serialized_start=1697 - _globals['_SCANRESPONSE']._serialized_end=1741 - _globals['_COPYREQUEST']._serialized_start=1743 - _globals['_COPYREQUEST']._serialized_end=1810 - _globals['_RANDOMKEYREQUEST']._serialized_start=1812 - _globals['_RANDOMKEYREQUEST']._serialized_end=1830 - _globals['_TOUCHREQUEST']._serialized_start=1832 - _globals['_TOUCHREQUEST']._serialized_end=1860 - _globals['_LPUSHREQUEST']._serialized_start=1862 - _globals['_LPUSHREQUEST']._serialized_end=1905 - _globals['_RPUSHREQUEST']._serialized_start=1907 - _globals['_RPUSHREQUEST']._serialized_end=1950 - _globals['_LPOPREQUEST']._serialized_start=1952 - _globals['_LPOPREQUEST']._serialized_end=1978 - _globals['_RPOPREQUEST']._serialized_start=1980 - _globals['_RPOPREQUEST']._serialized_end=2006 - _globals['_LRANGEREQUEST']._serialized_start=2008 - _globals['_LRANGEREQUEST']._serialized_end=2065 - _globals['_ARRAYRESPONSE']._serialized_start=2067 - _globals['_ARRAYRESPONSE']._serialized_end=2098 - _globals['_LLENREQUEST']._serialized_start=2100 - _globals['_LLENREQUEST']._serialized_end=2126 - _globals['_LINDEXREQUEST']._serialized_start=2128 - _globals['_LINDEXREQUEST']._serialized_end=2171 - _globals['_LSETREQUEST']._serialized_start=2173 - _globals['_LSETREQUEST']._serialized_end=2229 - _globals['_LTRIMREQUEST']._serialized_start=2231 - _globals['_LTRIMREQUEST']._serialized_end=2287 - _globals['_LINSERTREQUEST']._serialized_start=2289 - _globals['_LINSERTREQUEST']._serialized_end=2364 - _globals['_LREMREQUEST']._serialized_start=2366 - _globals['_LREMREQUEST']._serialized_end=2422 - _globals['_LPOSREQUEST']._serialized_start=2424 - _globals['_LPOSREQUEST']._serialized_end=2495 - _globals['_LMOVEREQUEST']._serialized_start=2497 - _globals['_LMOVEREQUEST']._serialized_end=2584 - _globals['_HSETREQUEST']._serialized_start=2586 - _globals['_HSETREQUEST']._serialized_end=2650 - _globals['_FIELDVALUE']._serialized_start=2652 - _globals['_FIELDVALUE']._serialized_end=2694 - _globals['_HGETREQUEST']._serialized_start=2696 - _globals['_HGETREQUEST']._serialized_end=2737 - _globals['_HGETALLREQUEST']._serialized_start=2739 - _globals['_HGETALLREQUEST']._serialized_end=2768 - _globals['_HASHRESPONSE']._serialized_start=2770 - _globals['_HASHRESPONSE']._serialized_end=2822 - _globals['_HDELREQUEST']._serialized_start=2824 - _globals['_HDELREQUEST']._serialized_end=2866 - _globals['_HEXISTSREQUEST']._serialized_start=2868 - _globals['_HEXISTSREQUEST']._serialized_end=2912 - _globals['_HLENREQUEST']._serialized_start=2914 - _globals['_HLENREQUEST']._serialized_end=2940 - _globals['_HINCRBYREQUEST']._serialized_start=2942 - _globals['_HINCRBYREQUEST']._serialized_end=3001 - _globals['_HKEYSREQUEST']._serialized_start=3003 - _globals['_HKEYSREQUEST']._serialized_end=3030 - _globals['_HVALSREQUEST']._serialized_start=3032 - _globals['_HVALSREQUEST']._serialized_end=3059 - _globals['_HMGETREQUEST']._serialized_start=3061 - _globals['_HMGETREQUEST']._serialized_end=3104 - _globals['_OPTIONALARRAYRESPONSE']._serialized_start=3106 - _globals['_OPTIONALARRAYRESPONSE']._serialized_end=3170 - _globals['_HSCANREQUEST']._serialized_start=3172 - _globals['_HSCANREQUEST']._serialized_end=3264 - _globals['_HSCANRESPONSE']._serialized_start=3266 - _globals['_HSCANRESPONSE']._serialized_end=3335 - _globals['_SADDREQUEST']._serialized_start=3337 - _globals['_SADDREQUEST']._serialized_end=3380 - _globals['_SREMREQUEST']._serialized_start=3382 - _globals['_SREMREQUEST']._serialized_end=3425 - _globals['_SMEMBERSREQUEST']._serialized_start=3427 - _globals['_SMEMBERSREQUEST']._serialized_end=3457 - _globals['_SISMEMBERREQUEST']._serialized_start=3459 - _globals['_SISMEMBERREQUEST']._serialized_end=3506 - _globals['_SCARDREQUEST']._serialized_start=3508 - _globals['_SCARDREQUEST']._serialized_end=3535 - _globals['_SUNIONREQUEST']._serialized_start=3537 - _globals['_SUNIONREQUEST']._serialized_end=3566 - _globals['_SINTERREQUEST']._serialized_start=3568 - _globals['_SINTERREQUEST']._serialized_end=3597 - _globals['_SDIFFREQUEST']._serialized_start=3599 - _globals['_SDIFFREQUEST']._serialized_end=3627 - _globals['_SUNIONSTOREREQUEST']._serialized_start=3629 - _globals['_SUNIONSTOREREQUEST']._serialized_end=3684 - _globals['_SINTERSTOREREQUEST']._serialized_start=3686 - _globals['_SINTERSTOREREQUEST']._serialized_end=3741 - _globals['_SDIFFSTOREREQUEST']._serialized_start=3743 - _globals['_SDIFFSTOREREQUEST']._serialized_end=3797 - _globals['_SRANDMEMBERREQUEST']._serialized_start=3799 - _globals['_SRANDMEMBERREQUEST']._serialized_end=3847 - _globals['_SPOPREQUEST']._serialized_start=3849 - _globals['_SPOPREQUEST']._serialized_end=3890 - _globals['_SMISMEMBERREQUEST']._serialized_start=3892 - _globals['_SMISMEMBERREQUEST']._serialized_end=3941 - _globals['_SSCANREQUEST']._serialized_start=3943 - _globals['_SSCANREQUEST']._serialized_end=4035 - _globals['_SSCANRESPONSE']._serialized_start=4037 - _globals['_SSCANRESPONSE']._serialized_end=4085 - _globals['_ZADDREQUEST']._serialized_start=4087 - _globals['_ZADDREQUEST']._serialized_end=4213 - _globals['_SCOREMEMBER']._serialized_start=4215 - _globals['_SCOREMEMBER']._serialized_end=4259 - _globals['_ZREMREQUEST']._serialized_start=4261 - _globals['_ZREMREQUEST']._serialized_end=4304 - _globals['_ZSCOREREQUEST']._serialized_start=4306 - _globals['_ZSCOREREQUEST']._serialized_end=4350 - _globals['_OPTIONALFLOATRESPONSE']._serialized_start=4352 - _globals['_OPTIONALFLOATRESPONSE']._serialized_end=4405 - _globals['_ZRANKREQUEST']._serialized_start=4407 - _globals['_ZRANKREQUEST']._serialized_end=4450 - _globals['_OPTIONALINTRESPONSE']._serialized_start=4452 - _globals['_OPTIONALINTRESPONSE']._serialized_end=4503 - _globals['_ZCARDREQUEST']._serialized_start=4505 - _globals['_ZCARDREQUEST']._serialized_end=4532 - _globals['_ZRANGEREQUEST']._serialized_start=4534 - _globals['_ZRANGEREQUEST']._serialized_end=4612 - _globals['_ZRANGERESPONSE']._serialized_start=4614 - _globals['_ZRANGERESPONSE']._serialized_end=4670 - _globals['_ZREVRANKREQUEST']._serialized_start=4672 - _globals['_ZREVRANKREQUEST']._serialized_end=4718 - _globals['_ZREVRANGEREQUEST']._serialized_start=4720 - _globals['_ZREVRANGEREQUEST']._serialized_end=4801 - _globals['_ZCOUNTREQUEST']._serialized_start=4803 - _globals['_ZCOUNTREQUEST']._serialized_end=4857 - _globals['_ZINCRBYREQUEST']._serialized_start=4859 - _globals['_ZINCRBYREQUEST']._serialized_end=4919 - _globals['_ZRANGEBYSCOREREQUEST']._serialized_start=4922 - _globals['_ZRANGEBYSCOREREQUEST']._serialized_end=5066 - _globals['_ZREVRANGEBYSCOREREQUEST']._serialized_start=5069 - _globals['_ZREVRANGEBYSCOREREQUEST']._serialized_end=5216 - _globals['_ZPOPMINREQUEST']._serialized_start=5218 - _globals['_ZPOPMINREQUEST']._serialized_end=5262 - _globals['_ZPOPMAXREQUEST']._serialized_start=5264 - _globals['_ZPOPMAXREQUEST']._serialized_end=5308 - _globals['_ZDIFFREQUEST']._serialized_start=5310 - _globals['_ZDIFFREQUEST']._serialized_end=5359 - _globals['_ZINTERREQUEST']._serialized_start=5361 - _globals['_ZINTERREQUEST']._serialized_end=5411 - _globals['_ZUNIONREQUEST']._serialized_start=5413 - _globals['_ZUNIONREQUEST']._serialized_end=5463 - _globals['_ZSCANREQUEST']._serialized_start=5465 - _globals['_ZSCANREQUEST']._serialized_end=5557 - _globals['_ZSCANRESPONSE']._serialized_start=5559 - _globals['_ZSCANRESPONSE']._serialized_end=5630 - _globals['_VADDREQUEST']._serialized_start=5633 - _globals['_VADDREQUEST']._serialized_end=5882 - _globals['_VADDBATCHENTRY']._serialized_start=5884 - _globals['_VADDBATCHENTRY']._serialized_end=5937 - _globals['_VADDBATCHREQUEST']._serialized_start=5940 - _globals['_VADDBATCHREQUEST']._serialized_end=6200 - _globals['_VSIMREQUEST']._serialized_start=6202 - _globals['_VSIMREQUEST']._serialized_end=6300 - _globals['_VSIMRESPONSE']._serialized_start=6302 - _globals['_VSIMRESPONSE']._serialized_end=6355 - _globals['_VSIMRESULT']._serialized_start=6357 - _globals['_VSIMRESULT']._serialized_end=6404 - _globals['_VREMREQUEST']._serialized_start=6406 - _globals['_VREMREQUEST']._serialized_end=6449 - _globals['_VGETREQUEST']._serialized_start=6451 - _globals['_VGETREQUEST']._serialized_end=6494 - _globals['_VGETRESPONSE']._serialized_start=6496 - _globals['_VGETRESPONSE']._serialized_end=6562 - _globals['_VCARDREQUEST']._serialized_start=6564 - _globals['_VCARDREQUEST']._serialized_end=6591 - _globals['_VDIMREQUEST']._serialized_start=6593 - _globals['_VDIMREQUEST']._serialized_end=6619 - _globals['_VINFOREQUEST']._serialized_start=6621 - _globals['_VINFOREQUEST']._serialized_end=6648 - _globals['_VINFORESPONSE']._serialized_start=6650 - _globals['_VINFORESPONSE']._serialized_end=6717 - _globals['_PINGREQUEST']._serialized_start=6719 - _globals['_PINGREQUEST']._serialized_end=6766 - _globals['_PINGRESPONSE']._serialized_start=6768 - _globals['_PINGRESPONSE']._serialized_end=6799 - _globals['_FLUSHDBREQUEST']._serialized_start=6801 - _globals['_FLUSHDBREQUEST']._serialized_end=6832 - _globals['_DBSIZEREQUEST']._serialized_start=6834 - _globals['_DBSIZEREQUEST']._serialized_end=6849 - _globals['_INFOREQUEST']._serialized_start=6851 - _globals['_INFOREQUEST']._serialized_end=6898 - _globals['_INFORESPONSE']._serialized_start=6900 - _globals['_INFORESPONSE']._serialized_end=6928 - _globals['_ECHOREQUEST']._serialized_start=6930 - _globals['_ECHOREQUEST']._serialized_end=6960 - _globals['_ECHORESPONSE']._serialized_start=6962 - _globals['_ECHORESPONSE']._serialized_end=6993 - _globals['_DECRREQUEST']._serialized_start=6995 - _globals['_DECRREQUEST']._serialized_end=7021 - _globals['_UNLINKREQUEST']._serialized_start=7023 - _globals['_UNLINKREQUEST']._serialized_end=7052 - _globals['_BGSAVEREQUEST']._serialized_start=7054 - _globals['_BGSAVEREQUEST']._serialized_end=7069 - _globals['_BGREWRITEAOFREQUEST']._serialized_start=7071 - _globals['_BGREWRITEAOFREQUEST']._serialized_end=7092 - _globals['_TIMEREQUEST']._serialized_start=7094 - _globals['_TIMEREQUEST']._serialized_end=7107 - _globals['_TIMERESPONSE']._serialized_start=7109 - _globals['_TIMERESPONSE']._serialized_end=7162 - _globals['_LASTSAVEREQUEST']._serialized_start=7164 - _globals['_LASTSAVEREQUEST']._serialized_end=7181 - _globals['_SLOWLOGGETREQUEST']._serialized_start=7183 - _globals['_SLOWLOGGETREQUEST']._serialized_end=7232 - _globals['_SLOWLOGGETRESPONSE']._serialized_start=7234 - _globals['_SLOWLOGGETRESPONSE']._serialized_end=7295 - _globals['_SLOWLOGENTRY']._serialized_start=7297 - _globals['_SLOWLOGENTRY']._serialized_end=7389 - _globals['_SLOWLOGLENREQUEST']._serialized_start=7391 - _globals['_SLOWLOGLENREQUEST']._serialized_end=7410 - _globals['_SLOWLOGRESETREQUEST']._serialized_start=7412 - _globals['_SLOWLOGRESETREQUEST']._serialized_end=7433 - _globals['_PUBLISHREQUEST']._serialized_start=7435 - _globals['_PUBLISHREQUEST']._serialized_end=7485 - _globals['_SUBSCRIBEREQUEST']._serialized_start=7487 - _globals['_SUBSCRIBEREQUEST']._serialized_end=7541 - _globals['_SUBSCRIBEEVENT']._serialized_start=7543 - _globals['_SUBSCRIBEEVENT']._serialized_end=7638 - _globals['_PUBSUBCHANNELSREQUEST']._serialized_start=7640 - _globals['_PUBSUBCHANNELSREQUEST']._serialized_end=7697 - _globals['_PUBSUBNUMSUBREQUEST']._serialized_start=7699 - _globals['_PUBSUBNUMSUBREQUEST']._serialized_end=7738 - _globals['_PUBSUBNUMSUBRESPONSE']._serialized_start=7740 - _globals['_PUBSUBNUMSUBRESPONSE']._serialized_end=7802 - _globals['_PUBSUBNUMPATREQUEST']._serialized_start=7804 - _globals['_PUBSUBNUMPATREQUEST']._serialized_end=7825 - _globals['_CHANNELCOUNT']._serialized_start=7827 - _globals['_CHANNELCOUNT']._serialized_end=7873 - _globals['_PIPELINEREQUEST']._serialized_start=7876 - _globals['_PIPELINEREQUEST']._serialized_end=12721 - _globals['_PIPELINERESPONSE']._serialized_start=12724 - _globals['_PIPELINERESPONSE']._serialized_end=14207 - _globals['_ERRORRESPONSE']._serialized_start=14209 - _globals['_ERRORRESPONSE']._serialized_end=14276 - _globals['_EMBERCACHE']._serialized_start=14649 - _globals['_EMBERCACHE']._serialized_end=21441 + _globals['_GETSETREQUEST']._serialized_start=1198 + _globals['_GETSETREQUEST']._serialized_end=1241 + _globals['_MSETNXREQUEST']._serialized_start=1243 + _globals['_MSETNXREQUEST']._serialized_end=1293 + _globals['_GETBITREQUEST']._serialized_start=1295 + _globals['_GETBITREQUEST']._serialized_end=1339 + _globals['_SETBITREQUEST']._serialized_start=1341 + _globals['_SETBITREQUEST']._serialized_end=1400 + _globals['_BITCOUNTREQUEST']._serialized_start=1402 + _globals['_BITCOUNTREQUEST']._serialized_end=1493 + _globals['_BITPOSREQUEST']._serialized_start=1495 + _globals['_BITPOSREQUEST']._serialized_end=1597 + _globals['_BITOPREQUEST']._serialized_start=1599 + _globals['_BITOPREQUEST']._serialized_end=1653 + _globals['_EXISTSREQUEST']._serialized_start=1655 + _globals['_EXISTSREQUEST']._serialized_end=1684 + _globals['_EXPIREREQUEST']._serialized_start=1686 + _globals['_EXPIREREQUEST']._serialized_end=1731 + _globals['_PEXPIREREQUEST']._serialized_start=1733 + _globals['_PEXPIREREQUEST']._serialized_end=1784 + _globals['_PERSISTREQUEST']._serialized_start=1786 + _globals['_PERSISTREQUEST']._serialized_end=1815 + _globals['_TTLREQUEST']._serialized_start=1817 + _globals['_TTLREQUEST']._serialized_end=1842 + _globals['_PTTLREQUEST']._serialized_start=1844 + _globals['_PTTLREQUEST']._serialized_end=1870 + _globals['_TTLRESPONSE']._serialized_start=1872 + _globals['_TTLRESPONSE']._serialized_end=1900 + _globals['_TYPEREQUEST']._serialized_start=1902 + _globals['_TYPEREQUEST']._serialized_end=1928 + _globals['_TYPERESPONSE']._serialized_start=1930 + _globals['_TYPERESPONSE']._serialized_end=1963 + _globals['_KEYSREQUEST']._serialized_start=1965 + _globals['_KEYSREQUEST']._serialized_end=1995 + _globals['_KEYSRESPONSE']._serialized_start=1997 + _globals['_KEYSRESPONSE']._serialized_end=2025 + _globals['_RENAMEREQUEST']._serialized_start=2027 + _globals['_RENAMEREQUEST']._serialized_end=2072 + _globals['_SCANREQUEST']._serialized_start=2074 + _globals['_SCANREQUEST']._serialized_end=2152 + _globals['_SCANRESPONSE']._serialized_start=2154 + _globals['_SCANRESPONSE']._serialized_end=2198 + _globals['_COPYREQUEST']._serialized_start=2200 + _globals['_COPYREQUEST']._serialized_end=2267 + _globals['_RANDOMKEYREQUEST']._serialized_start=2269 + _globals['_RANDOMKEYREQUEST']._serialized_end=2287 + _globals['_TOUCHREQUEST']._serialized_start=2289 + _globals['_TOUCHREQUEST']._serialized_end=2317 + _globals['_EXPIRETIMEREQUEST']._serialized_start=2319 + _globals['_EXPIRETIMEREQUEST']._serialized_end=2351 + _globals['_PEXPIRETIMEREQUEST']._serialized_start=2353 + _globals['_PEXPIRETIMEREQUEST']._serialized_end=2386 + _globals['_EXPIREATREQUEST']._serialized_start=2388 + _globals['_EXPIREATREQUEST']._serialized_end=2437 + _globals['_PEXPIREATREQUEST']._serialized_start=2439 + _globals['_PEXPIREATREQUEST']._serialized_end=2492 + _globals['_LPUSHREQUEST']._serialized_start=2494 + _globals['_LPUSHREQUEST']._serialized_end=2537 + _globals['_RPUSHREQUEST']._serialized_start=2539 + _globals['_RPUSHREQUEST']._serialized_end=2582 + _globals['_LPOPREQUEST']._serialized_start=2584 + _globals['_LPOPREQUEST']._serialized_end=2610 + _globals['_RPOPREQUEST']._serialized_start=2612 + _globals['_RPOPREQUEST']._serialized_end=2638 + _globals['_LRANGEREQUEST']._serialized_start=2640 + _globals['_LRANGEREQUEST']._serialized_end=2697 + _globals['_ARRAYRESPONSE']._serialized_start=2699 + _globals['_ARRAYRESPONSE']._serialized_end=2730 + _globals['_LLENREQUEST']._serialized_start=2732 + _globals['_LLENREQUEST']._serialized_end=2758 + _globals['_LINDEXREQUEST']._serialized_start=2760 + _globals['_LINDEXREQUEST']._serialized_end=2803 + _globals['_LSETREQUEST']._serialized_start=2805 + _globals['_LSETREQUEST']._serialized_end=2861 + _globals['_LTRIMREQUEST']._serialized_start=2863 + _globals['_LTRIMREQUEST']._serialized_end=2919 + _globals['_LINSERTREQUEST']._serialized_start=2921 + _globals['_LINSERTREQUEST']._serialized_end=2996 + _globals['_LREMREQUEST']._serialized_start=2998 + _globals['_LREMREQUEST']._serialized_end=3054 + _globals['_LPOSREQUEST']._serialized_start=3056 + _globals['_LPOSREQUEST']._serialized_end=3127 + _globals['_LMOVEREQUEST']._serialized_start=3129 + _globals['_LMOVEREQUEST']._serialized_end=3216 + _globals['_LMPOPREQUEST']._serialized_start=3218 + _globals['_LMPOPREQUEST']._serialized_end=3275 + _globals['_LMPOPRESPONSE']._serialized_start=3277 + _globals['_LMPOPRESPONSE']._serialized_end=3338 + _globals['_HSETREQUEST']._serialized_start=3340 + _globals['_HSETREQUEST']._serialized_end=3404 + _globals['_FIELDVALUE']._serialized_start=3406 + _globals['_FIELDVALUE']._serialized_end=3448 + _globals['_HGETREQUEST']._serialized_start=3450 + _globals['_HGETREQUEST']._serialized_end=3491 + _globals['_HGETALLREQUEST']._serialized_start=3493 + _globals['_HGETALLREQUEST']._serialized_end=3522 + _globals['_HASHRESPONSE']._serialized_start=3524 + _globals['_HASHRESPONSE']._serialized_end=3576 + _globals['_HDELREQUEST']._serialized_start=3578 + _globals['_HDELREQUEST']._serialized_end=3620 + _globals['_HEXISTSREQUEST']._serialized_start=3622 + _globals['_HEXISTSREQUEST']._serialized_end=3666 + _globals['_HLENREQUEST']._serialized_start=3668 + _globals['_HLENREQUEST']._serialized_end=3694 + _globals['_HINCRBYREQUEST']._serialized_start=3696 + _globals['_HINCRBYREQUEST']._serialized_end=3755 + _globals['_HKEYSREQUEST']._serialized_start=3757 + _globals['_HKEYSREQUEST']._serialized_end=3784 + _globals['_HVALSREQUEST']._serialized_start=3786 + _globals['_HVALSREQUEST']._serialized_end=3813 + _globals['_HMGETREQUEST']._serialized_start=3815 + _globals['_HMGETREQUEST']._serialized_end=3858 + _globals['_OPTIONALARRAYRESPONSE']._serialized_start=3860 + _globals['_OPTIONALARRAYRESPONSE']._serialized_end=3924 + _globals['_HSCANREQUEST']._serialized_start=3926 + _globals['_HSCANREQUEST']._serialized_end=4018 + _globals['_HSCANRESPONSE']._serialized_start=4020 + _globals['_HSCANRESPONSE']._serialized_end=4089 + _globals['_HRANDFIELDREQUEST']._serialized_start=4091 + _globals['_HRANDFIELDREQUEST']._serialized_end=4178 + _globals['_SADDREQUEST']._serialized_start=4180 + _globals['_SADDREQUEST']._serialized_end=4223 + _globals['_SREMREQUEST']._serialized_start=4225 + _globals['_SREMREQUEST']._serialized_end=4268 + _globals['_SMEMBERSREQUEST']._serialized_start=4270 + _globals['_SMEMBERSREQUEST']._serialized_end=4300 + _globals['_SISMEMBERREQUEST']._serialized_start=4302 + _globals['_SISMEMBERREQUEST']._serialized_end=4349 + _globals['_SCARDREQUEST']._serialized_start=4351 + _globals['_SCARDREQUEST']._serialized_end=4378 + _globals['_SUNIONREQUEST']._serialized_start=4380 + _globals['_SUNIONREQUEST']._serialized_end=4409 + _globals['_SINTERREQUEST']._serialized_start=4411 + _globals['_SINTERREQUEST']._serialized_end=4440 + _globals['_SDIFFREQUEST']._serialized_start=4442 + _globals['_SDIFFREQUEST']._serialized_end=4470 + _globals['_SUNIONSTOREREQUEST']._serialized_start=4472 + _globals['_SUNIONSTOREREQUEST']._serialized_end=4527 + _globals['_SINTERSTOREREQUEST']._serialized_start=4529 + _globals['_SINTERSTOREREQUEST']._serialized_end=4584 + _globals['_SDIFFSTOREREQUEST']._serialized_start=4586 + _globals['_SDIFFSTOREREQUEST']._serialized_end=4640 + _globals['_SRANDMEMBERREQUEST']._serialized_start=4642 + _globals['_SRANDMEMBERREQUEST']._serialized_end=4690 + _globals['_SPOPREQUEST']._serialized_start=4692 + _globals['_SPOPREQUEST']._serialized_end=4733 + _globals['_SMISMEMBERREQUEST']._serialized_start=4735 + _globals['_SMISMEMBERREQUEST']._serialized_end=4784 + _globals['_SMOVEREQUEST']._serialized_start=4786 + _globals['_SMOVEREQUEST']._serialized_end=4853 + _globals['_SINTERCARDREQUEST']._serialized_start=4855 + _globals['_SINTERCARDREQUEST']._serialized_end=4903 + _globals['_SSCANREQUEST']._serialized_start=4905 + _globals['_SSCANREQUEST']._serialized_end=4997 + _globals['_SSCANRESPONSE']._serialized_start=4999 + _globals['_SSCANRESPONSE']._serialized_end=5047 + _globals['_ZADDREQUEST']._serialized_start=5049 + _globals['_ZADDREQUEST']._serialized_end=5175 + _globals['_SCOREMEMBER']._serialized_start=5177 + _globals['_SCOREMEMBER']._serialized_end=5221 + _globals['_ZREMREQUEST']._serialized_start=5223 + _globals['_ZREMREQUEST']._serialized_end=5266 + _globals['_ZSCOREREQUEST']._serialized_start=5268 + _globals['_ZSCOREREQUEST']._serialized_end=5312 + _globals['_OPTIONALFLOATRESPONSE']._serialized_start=5314 + _globals['_OPTIONALFLOATRESPONSE']._serialized_end=5367 + _globals['_ZRANKREQUEST']._serialized_start=5369 + _globals['_ZRANKREQUEST']._serialized_end=5412 + _globals['_OPTIONALINTRESPONSE']._serialized_start=5414 + _globals['_OPTIONALINTRESPONSE']._serialized_end=5465 + _globals['_ZCARDREQUEST']._serialized_start=5467 + _globals['_ZCARDREQUEST']._serialized_end=5494 + _globals['_ZRANGEREQUEST']._serialized_start=5496 + _globals['_ZRANGEREQUEST']._serialized_end=5574 + _globals['_ZRANGERESPONSE']._serialized_start=5576 + _globals['_ZRANGERESPONSE']._serialized_end=5632 + _globals['_ZREVRANKREQUEST']._serialized_start=5634 + _globals['_ZREVRANKREQUEST']._serialized_end=5680 + _globals['_ZREVRANGEREQUEST']._serialized_start=5682 + _globals['_ZREVRANGEREQUEST']._serialized_end=5763 + _globals['_ZCOUNTREQUEST']._serialized_start=5765 + _globals['_ZCOUNTREQUEST']._serialized_end=5819 + _globals['_ZINCRBYREQUEST']._serialized_start=5821 + _globals['_ZINCRBYREQUEST']._serialized_end=5881 + _globals['_ZRANGEBYSCOREREQUEST']._serialized_start=5884 + _globals['_ZRANGEBYSCOREREQUEST']._serialized_end=6028 + _globals['_ZREVRANGEBYSCOREREQUEST']._serialized_start=6031 + _globals['_ZREVRANGEBYSCOREREQUEST']._serialized_end=6178 + _globals['_ZPOPMINREQUEST']._serialized_start=6180 + _globals['_ZPOPMINREQUEST']._serialized_end=6224 + _globals['_ZPOPMAXREQUEST']._serialized_start=6226 + _globals['_ZPOPMAXREQUEST']._serialized_end=6270 + _globals['_ZDIFFREQUEST']._serialized_start=6272 + _globals['_ZDIFFREQUEST']._serialized_end=6321 + _globals['_ZINTERREQUEST']._serialized_start=6323 + _globals['_ZINTERREQUEST']._serialized_end=6373 + _globals['_ZUNIONREQUEST']._serialized_start=6375 + _globals['_ZUNIONREQUEST']._serialized_end=6425 + _globals['_ZMPOPREQUEST']._serialized_start=6427 + _globals['_ZMPOPREQUEST']._serialized_end=6483 + _globals['_ZMPOPRESPONSE']._serialized_start=6485 + _globals['_ZMPOPRESPONSE']._serialized_end=6568 + _globals['_ZRANDMEMBERREQUEST']._serialized_start=6570 + _globals['_ZRANDMEMBERREQUEST']._serialized_end=6658 + _globals['_ZSCANREQUEST']._serialized_start=6660 + _globals['_ZSCANREQUEST']._serialized_end=6752 + _globals['_ZSCANRESPONSE']._serialized_start=6754 + _globals['_ZSCANRESPONSE']._serialized_end=6825 + _globals['_VADDREQUEST']._serialized_start=6828 + _globals['_VADDREQUEST']._serialized_end=7077 + _globals['_VADDBATCHENTRY']._serialized_start=7079 + _globals['_VADDBATCHENTRY']._serialized_end=7132 + _globals['_VADDBATCHREQUEST']._serialized_start=7135 + _globals['_VADDBATCHREQUEST']._serialized_end=7395 + _globals['_VSIMREQUEST']._serialized_start=7397 + _globals['_VSIMREQUEST']._serialized_end=7495 + _globals['_VSIMRESPONSE']._serialized_start=7497 + _globals['_VSIMRESPONSE']._serialized_end=7550 + _globals['_VSIMRESULT']._serialized_start=7552 + _globals['_VSIMRESULT']._serialized_end=7599 + _globals['_VREMREQUEST']._serialized_start=7601 + _globals['_VREMREQUEST']._serialized_end=7644 + _globals['_VGETREQUEST']._serialized_start=7646 + _globals['_VGETREQUEST']._serialized_end=7689 + _globals['_VGETRESPONSE']._serialized_start=7691 + _globals['_VGETRESPONSE']._serialized_end=7757 + _globals['_VCARDREQUEST']._serialized_start=7759 + _globals['_VCARDREQUEST']._serialized_end=7786 + _globals['_VDIMREQUEST']._serialized_start=7788 + _globals['_VDIMREQUEST']._serialized_end=7814 + _globals['_VINFOREQUEST']._serialized_start=7816 + _globals['_VINFOREQUEST']._serialized_end=7843 + _globals['_VINFORESPONSE']._serialized_start=7845 + _globals['_VINFORESPONSE']._serialized_end=7912 + _globals['_PINGREQUEST']._serialized_start=7914 + _globals['_PINGREQUEST']._serialized_end=7961 + _globals['_PINGRESPONSE']._serialized_start=7963 + _globals['_PINGRESPONSE']._serialized_end=7994 + _globals['_FLUSHDBREQUEST']._serialized_start=7996 + _globals['_FLUSHDBREQUEST']._serialized_end=8027 + _globals['_DBSIZEREQUEST']._serialized_start=8029 + _globals['_DBSIZEREQUEST']._serialized_end=8044 + _globals['_INFOREQUEST']._serialized_start=8046 + _globals['_INFOREQUEST']._serialized_end=8093 + _globals['_INFORESPONSE']._serialized_start=8095 + _globals['_INFORESPONSE']._serialized_end=8123 + _globals['_ECHOREQUEST']._serialized_start=8125 + _globals['_ECHOREQUEST']._serialized_end=8155 + _globals['_ECHORESPONSE']._serialized_start=8157 + _globals['_ECHORESPONSE']._serialized_end=8188 + _globals['_DECRREQUEST']._serialized_start=8190 + _globals['_DECRREQUEST']._serialized_end=8216 + _globals['_UNLINKREQUEST']._serialized_start=8218 + _globals['_UNLINKREQUEST']._serialized_end=8247 + _globals['_BGSAVEREQUEST']._serialized_start=8249 + _globals['_BGSAVEREQUEST']._serialized_end=8264 + _globals['_BGREWRITEAOFREQUEST']._serialized_start=8266 + _globals['_BGREWRITEAOFREQUEST']._serialized_end=8287 + _globals['_TIMEREQUEST']._serialized_start=8289 + _globals['_TIMEREQUEST']._serialized_end=8302 + _globals['_TIMERESPONSE']._serialized_start=8304 + _globals['_TIMERESPONSE']._serialized_end=8357 + _globals['_LASTSAVEREQUEST']._serialized_start=8359 + _globals['_LASTSAVEREQUEST']._serialized_end=8376 + _globals['_SLOWLOGGETREQUEST']._serialized_start=8378 + _globals['_SLOWLOGGETREQUEST']._serialized_end=8427 + _globals['_SLOWLOGGETRESPONSE']._serialized_start=8429 + _globals['_SLOWLOGGETRESPONSE']._serialized_end=8490 + _globals['_SLOWLOGENTRY']._serialized_start=8492 + _globals['_SLOWLOGENTRY']._serialized_end=8584 + _globals['_SLOWLOGLENREQUEST']._serialized_start=8586 + _globals['_SLOWLOGLENREQUEST']._serialized_end=8605 + _globals['_SLOWLOGRESETREQUEST']._serialized_start=8607 + _globals['_SLOWLOGRESETREQUEST']._serialized_end=8628 + _globals['_PUBLISHREQUEST']._serialized_start=8630 + _globals['_PUBLISHREQUEST']._serialized_end=8680 + _globals['_SUBSCRIBEREQUEST']._serialized_start=8682 + _globals['_SUBSCRIBEREQUEST']._serialized_end=8736 + _globals['_SUBSCRIBEEVENT']._serialized_start=8738 + _globals['_SUBSCRIBEEVENT']._serialized_end=8833 + _globals['_PUBSUBCHANNELSREQUEST']._serialized_start=8835 + _globals['_PUBSUBCHANNELSREQUEST']._serialized_end=8892 + _globals['_PUBSUBNUMSUBREQUEST']._serialized_start=8894 + _globals['_PUBSUBNUMSUBREQUEST']._serialized_end=8933 + _globals['_PUBSUBNUMSUBRESPONSE']._serialized_start=8935 + _globals['_PUBSUBNUMSUBRESPONSE']._serialized_end=8997 + _globals['_PUBSUBNUMPATREQUEST']._serialized_start=8999 + _globals['_PUBSUBNUMPATREQUEST']._serialized_end=9020 + _globals['_CHANNELCOUNT']._serialized_start=9022 + _globals['_CHANNELCOUNT']._serialized_end=9068 + _globals['_PIPELINEREQUEST']._serialized_start=9071 + _globals['_PIPELINEREQUEST']._serialized_end=14698 + _globals['_PIPELINERESPONSE']._serialized_start=14701 + _globals['_PIPELINERESPONSE']._serialized_end=16268 + _globals['_ERRORRESPONSE']._serialized_start=16270 + _globals['_ERRORRESPONSE']._serialized_end=16337 + _globals['_EMBERCACHE']._serialized_start=16710 + _globals['_EMBERCACHE']._serialized_end=24550 # @@protoc_insertion_point(module_scope) diff --git a/clients/ember-py/ember/proto/ember/v1/ember_pb2_grpc.py b/clients/ember-py/ember/proto/ember/v1/ember_pb2_grpc.py index 41bd40c1..74623dd9 100644 --- a/clients/ember-py/ember/proto/ember/v1/ember_pb2_grpc.py +++ b/clients/ember-py/ember/proto/ember/v1/ember_pb2_grpc.py @@ -5,7 +5,7 @@ from ember.proto.ember.v1 import ember_pb2 as ember_dot_v1_dot_ember__pb2 -GRPC_GENERATED_VERSION = '1.78.0' +GRPC_GENERATED_VERSION = '1.81.1' GRPC_VERSION = grpc.__version__ _version_not_supported = False @@ -25,7 +25,7 @@ ) -class EmberCacheStub(object): +class EmberCacheStub: """EmberCache provides a gRPC interface to ember's key-value store. all commands route through the same engine as RESP3, so behavior is identical regardless of protocol. @@ -598,6 +598,91 @@ def __init__(self, channel): request_serializer=ember_dot_v1_dot_ember__pb2.LastSaveRequest.SerializeToString, response_deserializer=ember_dot_v1_dot_ember__pb2.IntResponse.FromString, _registered_method=True) + self.Expiretime = channel.unary_unary( + '/ember.v1.EmberCache/Expiretime', + request_serializer=ember_dot_v1_dot_ember__pb2.ExpiretimeRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + _registered_method=True) + self.Pexpiretime = channel.unary_unary( + '/ember.v1.EmberCache/Pexpiretime', + request_serializer=ember_dot_v1_dot_ember__pb2.PexpiretimeRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + _registered_method=True) + self.Expireat = channel.unary_unary( + '/ember.v1.EmberCache/Expireat', + request_serializer=ember_dot_v1_dot_ember__pb2.ExpireatRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.BoolResponse.FromString, + _registered_method=True) + self.Pexpireat = channel.unary_unary( + '/ember.v1.EmberCache/Pexpireat', + request_serializer=ember_dot_v1_dot_ember__pb2.PexpireatRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.BoolResponse.FromString, + _registered_method=True) + self.Getset = channel.unary_unary( + '/ember.v1.EmberCache/Getset', + request_serializer=ember_dot_v1_dot_ember__pb2.GetsetRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.GetResponse.FromString, + _registered_method=True) + self.Msetnx = channel.unary_unary( + '/ember.v1.EmberCache/Msetnx', + request_serializer=ember_dot_v1_dot_ember__pb2.MsetnxRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.BoolResponse.FromString, + _registered_method=True) + self.Getbit = channel.unary_unary( + '/ember.v1.EmberCache/Getbit', + request_serializer=ember_dot_v1_dot_ember__pb2.GetbitRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + _registered_method=True) + self.Setbit = channel.unary_unary( + '/ember.v1.EmberCache/Setbit', + request_serializer=ember_dot_v1_dot_ember__pb2.SetbitRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + _registered_method=True) + self.Bitcount = channel.unary_unary( + '/ember.v1.EmberCache/Bitcount', + request_serializer=ember_dot_v1_dot_ember__pb2.BitcountRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + _registered_method=True) + self.Bitpos = channel.unary_unary( + '/ember.v1.EmberCache/Bitpos', + request_serializer=ember_dot_v1_dot_ember__pb2.BitposRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + _registered_method=True) + self.Bitop = channel.unary_unary( + '/ember.v1.EmberCache/Bitop', + request_serializer=ember_dot_v1_dot_ember__pb2.BitopRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + _registered_method=True) + self.Smove = channel.unary_unary( + '/ember.v1.EmberCache/Smove', + request_serializer=ember_dot_v1_dot_ember__pb2.SmoveRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.BoolResponse.FromString, + _registered_method=True) + self.Sintercard = channel.unary_unary( + '/ember.v1.EmberCache/Sintercard', + request_serializer=ember_dot_v1_dot_ember__pb2.SintercardRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + _registered_method=True) + self.Lmpop = channel.unary_unary( + '/ember.v1.EmberCache/Lmpop', + request_serializer=ember_dot_v1_dot_ember__pb2.LmpopRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.LmpopResponse.FromString, + _registered_method=True) + self.Zmpop = channel.unary_unary( + '/ember.v1.EmberCache/Zmpop', + request_serializer=ember_dot_v1_dot_ember__pb2.ZmpopRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.ZmpopResponse.FromString, + _registered_method=True) + self.Hrandfield = channel.unary_unary( + '/ember.v1.EmberCache/Hrandfield', + request_serializer=ember_dot_v1_dot_ember__pb2.HrandfieldRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.ArrayResponse.FromString, + _registered_method=True) + self.Zrandmember = channel.unary_unary( + '/ember.v1.EmberCache/Zrandmember', + request_serializer=ember_dot_v1_dot_ember__pb2.ZrandmemberRequest.SerializeToString, + response_deserializer=ember_dot_v1_dot_ember__pb2.ArrayResponse.FromString, + _registered_method=True) self.Pipeline = channel.stream_stream( '/ember.v1.EmberCache/Pipeline', request_serializer=ember_dot_v1_dot_ember__pb2.PipelineRequest.SerializeToString, @@ -605,7 +690,7 @@ def __init__(self, channel): _registered_method=True) -class EmberCacheServicer(object): +class EmberCacheServicer: """EmberCache provides a gRPC interface to ember's key-value store. all commands route through the same engine as RESP3, so behavior is identical regardless of protocol. @@ -1319,6 +1404,124 @@ def LastSave(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def Expiretime(self, request, context): + """--- keys (new) --- + + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Pexpiretime(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Expireat(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Pexpireat(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Getset(self, request, context): + """--- strings (new) --- + + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Msetnx(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Getbit(self, request, context): + """--- bitmaps --- + + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Setbit(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Bitcount(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Bitpos(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Bitop(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Smove(self, request, context): + """--- sets (new) --- + + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Sintercard(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Lmpop(self, request, context): + """--- lists (new) --- + + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Zmpop(self, request, context): + """--- sorted sets (new) --- + + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Hrandfield(self, request, context): + """--- hash (new) --- + + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Zrandmember(self, request, context): + """--- sorted set random --- + + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def Pipeline(self, request_iterator, context): """--- streaming --- bidirectional streaming for batch operations, matching RESP3 pipelining. @@ -1891,6 +2094,91 @@ def add_EmberCacheServicer_to_server(servicer, server): request_deserializer=ember_dot_v1_dot_ember__pb2.LastSaveRequest.FromString, response_serializer=ember_dot_v1_dot_ember__pb2.IntResponse.SerializeToString, ), + 'Expiretime': grpc.unary_unary_rpc_method_handler( + servicer.Expiretime, + request_deserializer=ember_dot_v1_dot_ember__pb2.ExpiretimeRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.IntResponse.SerializeToString, + ), + 'Pexpiretime': grpc.unary_unary_rpc_method_handler( + servicer.Pexpiretime, + request_deserializer=ember_dot_v1_dot_ember__pb2.PexpiretimeRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.IntResponse.SerializeToString, + ), + 'Expireat': grpc.unary_unary_rpc_method_handler( + servicer.Expireat, + request_deserializer=ember_dot_v1_dot_ember__pb2.ExpireatRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.BoolResponse.SerializeToString, + ), + 'Pexpireat': grpc.unary_unary_rpc_method_handler( + servicer.Pexpireat, + request_deserializer=ember_dot_v1_dot_ember__pb2.PexpireatRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.BoolResponse.SerializeToString, + ), + 'Getset': grpc.unary_unary_rpc_method_handler( + servicer.Getset, + request_deserializer=ember_dot_v1_dot_ember__pb2.GetsetRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.GetResponse.SerializeToString, + ), + 'Msetnx': grpc.unary_unary_rpc_method_handler( + servicer.Msetnx, + request_deserializer=ember_dot_v1_dot_ember__pb2.MsetnxRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.BoolResponse.SerializeToString, + ), + 'Getbit': grpc.unary_unary_rpc_method_handler( + servicer.Getbit, + request_deserializer=ember_dot_v1_dot_ember__pb2.GetbitRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.IntResponse.SerializeToString, + ), + 'Setbit': grpc.unary_unary_rpc_method_handler( + servicer.Setbit, + request_deserializer=ember_dot_v1_dot_ember__pb2.SetbitRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.IntResponse.SerializeToString, + ), + 'Bitcount': grpc.unary_unary_rpc_method_handler( + servicer.Bitcount, + request_deserializer=ember_dot_v1_dot_ember__pb2.BitcountRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.IntResponse.SerializeToString, + ), + 'Bitpos': grpc.unary_unary_rpc_method_handler( + servicer.Bitpos, + request_deserializer=ember_dot_v1_dot_ember__pb2.BitposRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.IntResponse.SerializeToString, + ), + 'Bitop': grpc.unary_unary_rpc_method_handler( + servicer.Bitop, + request_deserializer=ember_dot_v1_dot_ember__pb2.BitopRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.IntResponse.SerializeToString, + ), + 'Smove': grpc.unary_unary_rpc_method_handler( + servicer.Smove, + request_deserializer=ember_dot_v1_dot_ember__pb2.SmoveRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.BoolResponse.SerializeToString, + ), + 'Sintercard': grpc.unary_unary_rpc_method_handler( + servicer.Sintercard, + request_deserializer=ember_dot_v1_dot_ember__pb2.SintercardRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.IntResponse.SerializeToString, + ), + 'Lmpop': grpc.unary_unary_rpc_method_handler( + servicer.Lmpop, + request_deserializer=ember_dot_v1_dot_ember__pb2.LmpopRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.LmpopResponse.SerializeToString, + ), + 'Zmpop': grpc.unary_unary_rpc_method_handler( + servicer.Zmpop, + request_deserializer=ember_dot_v1_dot_ember__pb2.ZmpopRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.ZmpopResponse.SerializeToString, + ), + 'Hrandfield': grpc.unary_unary_rpc_method_handler( + servicer.Hrandfield, + request_deserializer=ember_dot_v1_dot_ember__pb2.HrandfieldRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.ArrayResponse.SerializeToString, + ), + 'Zrandmember': grpc.unary_unary_rpc_method_handler( + servicer.Zrandmember, + request_deserializer=ember_dot_v1_dot_ember__pb2.ZrandmemberRequest.FromString, + response_serializer=ember_dot_v1_dot_ember__pb2.ArrayResponse.SerializeToString, + ), 'Pipeline': grpc.stream_stream_rpc_method_handler( servicer.Pipeline, request_deserializer=ember_dot_v1_dot_ember__pb2.PipelineRequest.FromString, @@ -1904,7 +2192,7 @@ def add_EmberCacheServicer_to_server(servicer, server): # This class is part of an EXPERIMENTAL API. -class EmberCache(object): +class EmberCache: """EmberCache provides a gRPC interface to ember's key-value store. all commands route through the same engine as RESP3, so behavior is identical regardless of protocol. @@ -4935,6 +5223,465 @@ def LastSave(request, metadata, _registered_method=True) + @staticmethod + def Expiretime(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Expiretime', + ember_dot_v1_dot_ember__pb2.ExpiretimeRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Pexpiretime(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Pexpiretime', + ember_dot_v1_dot_ember__pb2.PexpiretimeRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Expireat(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Expireat', + ember_dot_v1_dot_ember__pb2.ExpireatRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.BoolResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Pexpireat(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Pexpireat', + ember_dot_v1_dot_ember__pb2.PexpireatRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.BoolResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Getset(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Getset', + ember_dot_v1_dot_ember__pb2.GetsetRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.GetResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Msetnx(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Msetnx', + ember_dot_v1_dot_ember__pb2.MsetnxRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.BoolResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Getbit(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Getbit', + ember_dot_v1_dot_ember__pb2.GetbitRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Setbit(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Setbit', + ember_dot_v1_dot_ember__pb2.SetbitRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Bitcount(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Bitcount', + ember_dot_v1_dot_ember__pb2.BitcountRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Bitpos(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Bitpos', + ember_dot_v1_dot_ember__pb2.BitposRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Bitop(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Bitop', + ember_dot_v1_dot_ember__pb2.BitopRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Smove(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Smove', + ember_dot_v1_dot_ember__pb2.SmoveRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.BoolResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Sintercard(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Sintercard', + ember_dot_v1_dot_ember__pb2.SintercardRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.IntResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Lmpop(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Lmpop', + ember_dot_v1_dot_ember__pb2.LmpopRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.LmpopResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Zmpop(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Zmpop', + ember_dot_v1_dot_ember__pb2.ZmpopRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.ZmpopResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Hrandfield(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Hrandfield', + ember_dot_v1_dot_ember__pb2.HrandfieldRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.ArrayResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Zrandmember(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/ember.v1.EmberCache/Zrandmember', + ember_dot_v1_dot_ember__pb2.ZrandmemberRequest.SerializeToString, + ember_dot_v1_dot_ember__pb2.ArrayResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def Pipeline(request_iterator, target, diff --git a/clients/ember-ts/proto/ember/v1/ember.proto b/clients/ember-ts/proto/ember/v1/ember.proto index cd0a7a35..e86c0dbc 100644 --- a/clients/ember-ts/proto/ember/v1/ember.proto +++ b/clients/ember-ts/proto/ember/v1/ember.proto @@ -174,6 +174,47 @@ service EmberCache { rpc Time(TimeRequest) returns (TimeResponse); rpc LastSave(LastSaveRequest) returns (IntResponse); + // --- keys (new) --- + + rpc Expiretime(ExpiretimeRequest) returns (IntResponse); + rpc Pexpiretime(PexpiretimeRequest) returns (IntResponse); + rpc Expireat(ExpireatRequest) returns (BoolResponse); + rpc Pexpireat(PexpireatRequest) returns (BoolResponse); + + // --- strings (new) --- + + rpc Getset(GetsetRequest) returns (GetResponse); + rpc Msetnx(MsetnxRequest) returns (BoolResponse); + + // --- bitmaps --- + + rpc Getbit(GetbitRequest) returns (IntResponse); + rpc Setbit(SetbitRequest) returns (IntResponse); + rpc Bitcount(BitcountRequest) returns (IntResponse); + rpc Bitpos(BitposRequest) returns (IntResponse); + rpc Bitop(BitopRequest) returns (IntResponse); + + // --- sets (new) --- + + rpc Smove(SmoveRequest) returns (BoolResponse); + rpc Sintercard(SintercardRequest) returns (IntResponse); + + // --- lists (new) --- + + rpc Lmpop(LmpopRequest) returns (LmpopResponse); + + // --- sorted sets (new) --- + + rpc Zmpop(ZmpopRequest) returns (ZmpopResponse); + + // --- hash (new) --- + + rpc Hrandfield(HrandfieldRequest) returns (ArrayResponse); + + // --- sorted set random --- + + rpc Zrandmember(ZrandmemberRequest) returns (ArrayResponse); + // --- streaming --- // bidirectional streaming for batch operations, matching RESP3 pipelining. @@ -320,6 +361,51 @@ message SetRangeRequest { bytes value = 3; } +message GetsetRequest { + string key = 1; + bytes value = 2; +} + +message MsetnxRequest { + repeated KeyValue pairs = 1; +} + +message GetbitRequest { + string key = 1; + uint64 offset = 2; +} + +message SetbitRequest { + string key = 1; + uint64 offset = 2; + uint32 value = 3; +} + +message BitcountRequest { + string key = 1; + bool has_range = 2; + int64 start = 3; + int64 end = 4; + // "BYTE" or "BIT" (only used when has_range is true) + string unit = 5; +} + +message BitposRequest { + string key = 1; + uint32 bit = 2; + bool has_range = 3; + int64 start = 4; + int64 end = 5; + string unit = 6; +} + +message BitopRequest { + // "AND", "OR", "XOR", or "NOT" + string op = 1; + string dest = 2; + repeated string keys = 3; +} + // --------------------------------------------------------------------------- // keys // --------------------------------------------------------------------------- @@ -400,6 +486,24 @@ message TouchRequest { repeated string keys = 1; } +message ExpiretimeRequest { + string key = 1; +} + +message PexpiretimeRequest { + string key = 1; +} + +message ExpireatRequest { + string key = 1; + uint64 timestamp = 2; +} + +message PexpireatRequest { + string key = 1; + uint64 timestamp_ms = 2; +} + // --------------------------------------------------------------------------- // lists // --------------------------------------------------------------------------- @@ -484,6 +588,19 @@ message LMoveRequest { bool dst_left = 4; } +message LmpopRequest { + repeated string keys = 1; + // true = LEFT, false = RIGHT + bool left = 2; + uint32 count = 3; +} + +message LmpopResponse { + bool found = 1; + string key = 2; + repeated bytes elements = 3; +} + // --------------------------------------------------------------------------- // hashes // --------------------------------------------------------------------------- @@ -561,6 +678,13 @@ message HScanResponse { repeated FieldValue fields = 2; } +message HrandfieldRequest { + string key = 1; + bool has_count = 2; + int32 count = 3; + bool with_values = 4; +} + // --------------------------------------------------------------------------- // sets // --------------------------------------------------------------------------- @@ -631,6 +755,18 @@ message SMisMemberRequest { repeated string members = 2; } +message SmoveRequest { + string source = 1; + string destination = 2; + string member = 3; +} + +message SintercardRequest { + repeated string keys = 1; + // 0 means no limit + uint64 limit = 2; +} + message SScanRequest { string key = 1; uint64 cursor = 2; @@ -770,6 +906,26 @@ message ZUnionRequest { bool with_scores = 2; } +message ZmpopRequest { + repeated string keys = 1; + // true = MIN, false = MAX + bool min = 2; + uint32 count = 3; +} + +message ZmpopResponse { + bool found = 1; + string key = 2; + repeated ScoreMember members = 3; +} + +message ZrandmemberRequest { + string key = 1; + bool has_count = 2; + int32 count = 3; + bool with_scores = 4; +} + message ZScanRequest { string key = 1; uint64 cursor = 2; @@ -1124,6 +1280,39 @@ message PipelineRequest { // extended server TimeRequest time = 110; LastSaveRequest last_save = 111; + + // new keys + ExpiretimeRequest expiretime = 112; + PexpiretimeRequest pexpiretime = 113; + ExpireatRequest expireat = 114; + PexpireatRequest pexpireat = 115; + + // new strings + GetsetRequest getset = 116; + MsetnxRequest msetnx = 117; + + // bitmaps + GetbitRequest getbit = 118; + SetbitRequest setbit = 119; + BitcountRequest bitcount = 120; + BitposRequest bitpos = 121; + BitopRequest bitop = 122; + + // new sets + SmoveRequest smove = 123; + SintercardRequest sintercard = 124; + + // new lists + LmpopRequest lmpop = 125; + + // new sorted sets + ZmpopRequest zmpop = 126; + + // new hash + HrandfieldRequest hrandfield = 127; + + // sorted set random + ZrandmemberRequest zrandmember = 128; } } @@ -1163,6 +1352,8 @@ message PipelineResponse { ZScanResponse zscan = 32; SScanResponse sscan = 33; TimeResponse time_resp = 34; + LmpopResponse lmpop = 35; + ZmpopResponse zmpop = 36; } } diff --git a/clients/ember-ts/src/generated/ember/v1/BitcountRequest.ts b/clients/ember-ts/src/generated/ember/v1/BitcountRequest.ts new file mode 100644 index 00000000..bdc1269e --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/BitcountRequest.ts @@ -0,0 +1,19 @@ +// Original file: ../../proto/ember/v1/ember.proto + +import type { Long } from '@grpc/proto-loader'; + +export interface BitcountRequest { + 'key'?: (string); + 'hasRange'?: (boolean); + 'start'?: (number | string | Long); + 'end'?: (number | string | Long); + 'unit'?: (string); +} + +export interface BitcountRequest__Output { + 'key'?: (string); + 'hasRange'?: (boolean); + 'start'?: (Long); + 'end'?: (Long); + 'unit'?: (string); +} diff --git a/clients/ember-ts/src/generated/ember/v1/BitopRequest.ts b/clients/ember-ts/src/generated/ember/v1/BitopRequest.ts new file mode 100644 index 00000000..78431dd6 --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/BitopRequest.ts @@ -0,0 +1,14 @@ +// Original file: ../../proto/ember/v1/ember.proto + + +export interface BitopRequest { + 'op'?: (string); + 'dest'?: (string); + 'keys'?: (string)[]; +} + +export interface BitopRequest__Output { + 'op'?: (string); + 'dest'?: (string); + 'keys'?: (string)[]; +} diff --git a/clients/ember-ts/src/generated/ember/v1/BitposRequest.ts b/clients/ember-ts/src/generated/ember/v1/BitposRequest.ts new file mode 100644 index 00000000..caa0f600 --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/BitposRequest.ts @@ -0,0 +1,21 @@ +// Original file: ../../proto/ember/v1/ember.proto + +import type { Long } from '@grpc/proto-loader'; + +export interface BitposRequest { + 'key'?: (string); + 'bit'?: (number); + 'hasRange'?: (boolean); + 'start'?: (number | string | Long); + 'end'?: (number | string | Long); + 'unit'?: (string); +} + +export interface BitposRequest__Output { + 'key'?: (string); + 'bit'?: (number); + 'hasRange'?: (boolean); + 'start'?: (Long); + 'end'?: (Long); + 'unit'?: (string); +} diff --git a/clients/ember-ts/src/generated/ember/v1/EmberCache.ts b/clients/ember-ts/src/generated/ember/v1/EmberCache.ts index f6d41901..b15318ad 100644 --- a/clients/ember-ts/src/generated/ember/v1/EmberCache.ts +++ b/clients/ember-ts/src/generated/ember/v1/EmberCache.ts @@ -5,6 +5,9 @@ import type { AppendRequest as _ember_v1_AppendRequest, AppendRequest__Output as import type { ArrayResponse as _ember_v1_ArrayResponse, ArrayResponse__Output as _ember_v1_ArrayResponse__Output } from '../../ember/v1/ArrayResponse'; import type { BgRewriteAofRequest as _ember_v1_BgRewriteAofRequest, BgRewriteAofRequest__Output as _ember_v1_BgRewriteAofRequest__Output } from '../../ember/v1/BgRewriteAofRequest'; import type { BgSaveRequest as _ember_v1_BgSaveRequest, BgSaveRequest__Output as _ember_v1_BgSaveRequest__Output } from '../../ember/v1/BgSaveRequest'; +import type { BitcountRequest as _ember_v1_BitcountRequest, BitcountRequest__Output as _ember_v1_BitcountRequest__Output } from '../../ember/v1/BitcountRequest'; +import type { BitopRequest as _ember_v1_BitopRequest, BitopRequest__Output as _ember_v1_BitopRequest__Output } from '../../ember/v1/BitopRequest'; +import type { BitposRequest as _ember_v1_BitposRequest, BitposRequest__Output as _ember_v1_BitposRequest__Output } from '../../ember/v1/BitposRequest'; import type { BoolArrayResponse as _ember_v1_BoolArrayResponse, BoolArrayResponse__Output as _ember_v1_BoolArrayResponse__Output } from '../../ember/v1/BoolArrayResponse'; import type { BoolResponse as _ember_v1_BoolResponse, BoolResponse__Output as _ember_v1_BoolResponse__Output } from '../../ember/v1/BoolResponse'; import type { CopyRequest as _ember_v1_CopyRequest, CopyRequest__Output as _ember_v1_CopyRequest__Output } from '../../ember/v1/CopyRequest'; @@ -17,6 +20,8 @@ import type { EchoRequest as _ember_v1_EchoRequest, EchoRequest__Output as _embe import type { EchoResponse as _ember_v1_EchoResponse, EchoResponse__Output as _ember_v1_EchoResponse__Output } from '../../ember/v1/EchoResponse'; import type { ExistsRequest as _ember_v1_ExistsRequest, ExistsRequest__Output as _ember_v1_ExistsRequest__Output } from '../../ember/v1/ExistsRequest'; import type { ExpireRequest as _ember_v1_ExpireRequest, ExpireRequest__Output as _ember_v1_ExpireRequest__Output } from '../../ember/v1/ExpireRequest'; +import type { ExpireatRequest as _ember_v1_ExpireatRequest, ExpireatRequest__Output as _ember_v1_ExpireatRequest__Output } from '../../ember/v1/ExpireatRequest'; +import type { ExpiretimeRequest as _ember_v1_ExpiretimeRequest, ExpiretimeRequest__Output as _ember_v1_ExpiretimeRequest__Output } from '../../ember/v1/ExpiretimeRequest'; import type { FloatResponse as _ember_v1_FloatResponse, FloatResponse__Output as _ember_v1_FloatResponse__Output } from '../../ember/v1/FloatResponse'; import type { FlushDbRequest as _ember_v1_FlushDbRequest, FlushDbRequest__Output as _ember_v1_FlushDbRequest__Output } from '../../ember/v1/FlushDbRequest'; import type { GetDelRequest as _ember_v1_GetDelRequest, GetDelRequest__Output as _ember_v1_GetDelRequest__Output } from '../../ember/v1/GetDelRequest'; @@ -24,6 +29,8 @@ import type { GetExRequest as _ember_v1_GetExRequest, GetExRequest__Output as _e import type { GetRangeRequest as _ember_v1_GetRangeRequest, GetRangeRequest__Output as _ember_v1_GetRangeRequest__Output } from '../../ember/v1/GetRangeRequest'; import type { GetRequest as _ember_v1_GetRequest, GetRequest__Output as _ember_v1_GetRequest__Output } from '../../ember/v1/GetRequest'; import type { GetResponse as _ember_v1_GetResponse, GetResponse__Output as _ember_v1_GetResponse__Output } from '../../ember/v1/GetResponse'; +import type { GetbitRequest as _ember_v1_GetbitRequest, GetbitRequest__Output as _ember_v1_GetbitRequest__Output } from '../../ember/v1/GetbitRequest'; +import type { GetsetRequest as _ember_v1_GetsetRequest, GetsetRequest__Output as _ember_v1_GetsetRequest__Output } from '../../ember/v1/GetsetRequest'; import type { HDelRequest as _ember_v1_HDelRequest, HDelRequest__Output as _ember_v1_HDelRequest__Output } from '../../ember/v1/HDelRequest'; import type { HExistsRequest as _ember_v1_HExistsRequest, HExistsRequest__Output as _ember_v1_HExistsRequest__Output } from '../../ember/v1/HExistsRequest'; import type { HGetAllRequest as _ember_v1_HGetAllRequest, HGetAllRequest__Output as _ember_v1_HGetAllRequest__Output } from '../../ember/v1/HGetAllRequest'; @@ -37,6 +44,7 @@ import type { HScanResponse as _ember_v1_HScanResponse, HScanResponse__Output as import type { HSetRequest as _ember_v1_HSetRequest, HSetRequest__Output as _ember_v1_HSetRequest__Output } from '../../ember/v1/HSetRequest'; import type { HValsRequest as _ember_v1_HValsRequest, HValsRequest__Output as _ember_v1_HValsRequest__Output } from '../../ember/v1/HValsRequest'; import type { HashResponse as _ember_v1_HashResponse, HashResponse__Output as _ember_v1_HashResponse__Output } from '../../ember/v1/HashResponse'; +import type { HrandfieldRequest as _ember_v1_HrandfieldRequest, HrandfieldRequest__Output as _ember_v1_HrandfieldRequest__Output } from '../../ember/v1/HrandfieldRequest'; import type { IncrByFloatRequest as _ember_v1_IncrByFloatRequest, IncrByFloatRequest__Output as _ember_v1_IncrByFloatRequest__Output } from '../../ember/v1/IncrByFloatRequest'; import type { IncrByRequest as _ember_v1_IncrByRequest, IncrByRequest__Output as _ember_v1_IncrByRequest__Output } from '../../ember/v1/IncrByRequest'; import type { IncrRequest as _ember_v1_IncrRequest, IncrRequest__Output as _ember_v1_IncrRequest__Output } from '../../ember/v1/IncrRequest'; @@ -57,16 +65,21 @@ import type { LRemRequest as _ember_v1_LRemRequest, LRemRequest__Output as _embe import type { LSetRequest as _ember_v1_LSetRequest, LSetRequest__Output as _ember_v1_LSetRequest__Output } from '../../ember/v1/LSetRequest'; import type { LTrimRequest as _ember_v1_LTrimRequest, LTrimRequest__Output as _ember_v1_LTrimRequest__Output } from '../../ember/v1/LTrimRequest'; import type { LastSaveRequest as _ember_v1_LastSaveRequest, LastSaveRequest__Output as _ember_v1_LastSaveRequest__Output } from '../../ember/v1/LastSaveRequest'; +import type { LmpopRequest as _ember_v1_LmpopRequest, LmpopRequest__Output as _ember_v1_LmpopRequest__Output } from '../../ember/v1/LmpopRequest'; +import type { LmpopResponse as _ember_v1_LmpopResponse, LmpopResponse__Output as _ember_v1_LmpopResponse__Output } from '../../ember/v1/LmpopResponse'; import type { MGetRequest as _ember_v1_MGetRequest, MGetRequest__Output as _ember_v1_MGetRequest__Output } from '../../ember/v1/MGetRequest'; import type { MGetResponse as _ember_v1_MGetResponse, MGetResponse__Output as _ember_v1_MGetResponse__Output } from '../../ember/v1/MGetResponse'; import type { MSetRequest as _ember_v1_MSetRequest, MSetRequest__Output as _ember_v1_MSetRequest__Output } from '../../ember/v1/MSetRequest'; import type { MSetResponse as _ember_v1_MSetResponse, MSetResponse__Output as _ember_v1_MSetResponse__Output } from '../../ember/v1/MSetResponse'; +import type { MsetnxRequest as _ember_v1_MsetnxRequest, MsetnxRequest__Output as _ember_v1_MsetnxRequest__Output } from '../../ember/v1/MsetnxRequest'; import type { OptionalArrayResponse as _ember_v1_OptionalArrayResponse, OptionalArrayResponse__Output as _ember_v1_OptionalArrayResponse__Output } from '../../ember/v1/OptionalArrayResponse'; import type { OptionalFloatResponse as _ember_v1_OptionalFloatResponse, OptionalFloatResponse__Output as _ember_v1_OptionalFloatResponse__Output } from '../../ember/v1/OptionalFloatResponse'; import type { OptionalIntResponse as _ember_v1_OptionalIntResponse, OptionalIntResponse__Output as _ember_v1_OptionalIntResponse__Output } from '../../ember/v1/OptionalIntResponse'; import type { PExpireRequest as _ember_v1_PExpireRequest, PExpireRequest__Output as _ember_v1_PExpireRequest__Output } from '../../ember/v1/PExpireRequest'; import type { PTtlRequest as _ember_v1_PTtlRequest, PTtlRequest__Output as _ember_v1_PTtlRequest__Output } from '../../ember/v1/PTtlRequest'; import type { PersistRequest as _ember_v1_PersistRequest, PersistRequest__Output as _ember_v1_PersistRequest__Output } from '../../ember/v1/PersistRequest'; +import type { PexpireatRequest as _ember_v1_PexpireatRequest, PexpireatRequest__Output as _ember_v1_PexpireatRequest__Output } from '../../ember/v1/PexpireatRequest'; +import type { PexpiretimeRequest as _ember_v1_PexpiretimeRequest, PexpiretimeRequest__Output as _ember_v1_PexpiretimeRequest__Output } from '../../ember/v1/PexpiretimeRequest'; import type { PingRequest as _ember_v1_PingRequest, PingRequest__Output as _ember_v1_PingRequest__Output } from '../../ember/v1/PingRequest'; import type { PingResponse as _ember_v1_PingResponse, PingResponse__Output as _ember_v1_PingResponse__Output } from '../../ember/v1/PingResponse'; import type { PipelineRequest as _ember_v1_PipelineRequest, PipelineRequest__Output as _ember_v1_PipelineRequest__Output } from '../../ember/v1/PipelineRequest'; @@ -101,10 +114,13 @@ import type { ScanResponse as _ember_v1_ScanResponse, ScanResponse__Output as _e import type { SetRangeRequest as _ember_v1_SetRangeRequest, SetRangeRequest__Output as _ember_v1_SetRangeRequest__Output } from '../../ember/v1/SetRangeRequest'; import type { SetRequest as _ember_v1_SetRequest, SetRequest__Output as _ember_v1_SetRequest__Output } from '../../ember/v1/SetRequest'; import type { SetResponse as _ember_v1_SetResponse, SetResponse__Output as _ember_v1_SetResponse__Output } from '../../ember/v1/SetResponse'; +import type { SetbitRequest as _ember_v1_SetbitRequest, SetbitRequest__Output as _ember_v1_SetbitRequest__Output } from '../../ember/v1/SetbitRequest'; +import type { SintercardRequest as _ember_v1_SintercardRequest, SintercardRequest__Output as _ember_v1_SintercardRequest__Output } from '../../ember/v1/SintercardRequest'; import type { SlowLogGetRequest as _ember_v1_SlowLogGetRequest, SlowLogGetRequest__Output as _ember_v1_SlowLogGetRequest__Output } from '../../ember/v1/SlowLogGetRequest'; import type { SlowLogGetResponse as _ember_v1_SlowLogGetResponse, SlowLogGetResponse__Output as _ember_v1_SlowLogGetResponse__Output } from '../../ember/v1/SlowLogGetResponse'; import type { SlowLogLenRequest as _ember_v1_SlowLogLenRequest, SlowLogLenRequest__Output as _ember_v1_SlowLogLenRequest__Output } from '../../ember/v1/SlowLogLenRequest'; import type { SlowLogResetRequest as _ember_v1_SlowLogResetRequest, SlowLogResetRequest__Output as _ember_v1_SlowLogResetRequest__Output } from '../../ember/v1/SlowLogResetRequest'; +import type { SmoveRequest as _ember_v1_SmoveRequest, SmoveRequest__Output as _ember_v1_SmoveRequest__Output } from '../../ember/v1/SmoveRequest'; import type { StatusResponse as _ember_v1_StatusResponse, StatusResponse__Output as _ember_v1_StatusResponse__Output } from '../../ember/v1/StatusResponse'; import type { StrlenRequest as _ember_v1_StrlenRequest, StrlenRequest__Output as _ember_v1_StrlenRequest__Output } from '../../ember/v1/StrlenRequest'; import type { SubscribeEvent as _ember_v1_SubscribeEvent, SubscribeEvent__Output as _ember_v1_SubscribeEvent__Output } from '../../ember/v1/SubscribeEvent'; @@ -148,11 +164,17 @@ import type { ZScanRequest as _ember_v1_ZScanRequest, ZScanRequest__Output as _e import type { ZScanResponse as _ember_v1_ZScanResponse, ZScanResponse__Output as _ember_v1_ZScanResponse__Output } from '../../ember/v1/ZScanResponse'; import type { ZScoreRequest as _ember_v1_ZScoreRequest, ZScoreRequest__Output as _ember_v1_ZScoreRequest__Output } from '../../ember/v1/ZScoreRequest'; import type { ZUnionRequest as _ember_v1_ZUnionRequest, ZUnionRequest__Output as _ember_v1_ZUnionRequest__Output } from '../../ember/v1/ZUnionRequest'; +import type { ZmpopRequest as _ember_v1_ZmpopRequest, ZmpopRequest__Output as _ember_v1_ZmpopRequest__Output } from '../../ember/v1/ZmpopRequest'; +import type { ZmpopResponse as _ember_v1_ZmpopResponse, ZmpopResponse__Output as _ember_v1_ZmpopResponse__Output } from '../../ember/v1/ZmpopResponse'; +import type { ZrandmemberRequest as _ember_v1_ZrandmemberRequest, ZrandmemberRequest__Output as _ember_v1_ZrandmemberRequest__Output } from '../../ember/v1/ZrandmemberRequest'; export interface EmberCacheDefinition { Append: MethodDefinition<_ember_v1_AppendRequest, _ember_v1_IntResponse, _ember_v1_AppendRequest__Output, _ember_v1_IntResponse__Output> BgRewriteAof: MethodDefinition<_ember_v1_BgRewriteAofRequest, _ember_v1_StatusResponse, _ember_v1_BgRewriteAofRequest__Output, _ember_v1_StatusResponse__Output> BgSave: MethodDefinition<_ember_v1_BgSaveRequest, _ember_v1_StatusResponse, _ember_v1_BgSaveRequest__Output, _ember_v1_StatusResponse__Output> + Bitcount: MethodDefinition<_ember_v1_BitcountRequest, _ember_v1_IntResponse, _ember_v1_BitcountRequest__Output, _ember_v1_IntResponse__Output> + Bitop: MethodDefinition<_ember_v1_BitopRequest, _ember_v1_IntResponse, _ember_v1_BitopRequest__Output, _ember_v1_IntResponse__Output> + Bitpos: MethodDefinition<_ember_v1_BitposRequest, _ember_v1_IntResponse, _ember_v1_BitposRequest__Output, _ember_v1_IntResponse__Output> Copy: MethodDefinition<_ember_v1_CopyRequest, _ember_v1_BoolResponse, _ember_v1_CopyRequest__Output, _ember_v1_BoolResponse__Output> DbSize: MethodDefinition<_ember_v1_DbSizeRequest, _ember_v1_IntResponse, _ember_v1_DbSizeRequest__Output, _ember_v1_IntResponse__Output> Decr: MethodDefinition<_ember_v1_DecrRequest, _ember_v1_IntResponse, _ember_v1_DecrRequest__Output, _ember_v1_IntResponse__Output> @@ -161,11 +183,15 @@ export interface EmberCacheDefinition { Echo: MethodDefinition<_ember_v1_EchoRequest, _ember_v1_EchoResponse, _ember_v1_EchoRequest__Output, _ember_v1_EchoResponse__Output> Exists: MethodDefinition<_ember_v1_ExistsRequest, _ember_v1_IntResponse, _ember_v1_ExistsRequest__Output, _ember_v1_IntResponse__Output> Expire: MethodDefinition<_ember_v1_ExpireRequest, _ember_v1_BoolResponse, _ember_v1_ExpireRequest__Output, _ember_v1_BoolResponse__Output> + Expireat: MethodDefinition<_ember_v1_ExpireatRequest, _ember_v1_BoolResponse, _ember_v1_ExpireatRequest__Output, _ember_v1_BoolResponse__Output> + Expiretime: MethodDefinition<_ember_v1_ExpiretimeRequest, _ember_v1_IntResponse, _ember_v1_ExpiretimeRequest__Output, _ember_v1_IntResponse__Output> FlushDb: MethodDefinition<_ember_v1_FlushDbRequest, _ember_v1_StatusResponse, _ember_v1_FlushDbRequest__Output, _ember_v1_StatusResponse__Output> Get: MethodDefinition<_ember_v1_GetRequest, _ember_v1_GetResponse, _ember_v1_GetRequest__Output, _ember_v1_GetResponse__Output> GetDel: MethodDefinition<_ember_v1_GetDelRequest, _ember_v1_GetResponse, _ember_v1_GetDelRequest__Output, _ember_v1_GetResponse__Output> GetEx: MethodDefinition<_ember_v1_GetExRequest, _ember_v1_GetResponse, _ember_v1_GetExRequest__Output, _ember_v1_GetResponse__Output> GetRange: MethodDefinition<_ember_v1_GetRangeRequest, _ember_v1_GetResponse, _ember_v1_GetRangeRequest__Output, _ember_v1_GetResponse__Output> + Getbit: MethodDefinition<_ember_v1_GetbitRequest, _ember_v1_IntResponse, _ember_v1_GetbitRequest__Output, _ember_v1_IntResponse__Output> + Getset: MethodDefinition<_ember_v1_GetsetRequest, _ember_v1_GetResponse, _ember_v1_GetsetRequest__Output, _ember_v1_GetResponse__Output> HDel: MethodDefinition<_ember_v1_HDelRequest, _ember_v1_IntResponse, _ember_v1_HDelRequest__Output, _ember_v1_IntResponse__Output> HExists: MethodDefinition<_ember_v1_HExistsRequest, _ember_v1_BoolResponse, _ember_v1_HExistsRequest__Output, _ember_v1_BoolResponse__Output> HGet: MethodDefinition<_ember_v1_HGetRequest, _ember_v1_GetResponse, _ember_v1_HGetRequest__Output, _ember_v1_GetResponse__Output> @@ -177,6 +203,7 @@ export interface EmberCacheDefinition { HScan: MethodDefinition<_ember_v1_HScanRequest, _ember_v1_HScanResponse, _ember_v1_HScanRequest__Output, _ember_v1_HScanResponse__Output> HSet: MethodDefinition<_ember_v1_HSetRequest, _ember_v1_IntResponse, _ember_v1_HSetRequest__Output, _ember_v1_IntResponse__Output> HVals: MethodDefinition<_ember_v1_HValsRequest, _ember_v1_ArrayResponse, _ember_v1_HValsRequest__Output, _ember_v1_ArrayResponse__Output> + Hrandfield: MethodDefinition<_ember_v1_HrandfieldRequest, _ember_v1_ArrayResponse, _ember_v1_HrandfieldRequest__Output, _ember_v1_ArrayResponse__Output> Incr: MethodDefinition<_ember_v1_IncrRequest, _ember_v1_IntResponse, _ember_v1_IncrRequest__Output, _ember_v1_IntResponse__Output> IncrBy: MethodDefinition<_ember_v1_IncrByRequest, _ember_v1_IntResponse, _ember_v1_IncrByRequest__Output, _ember_v1_IntResponse__Output> IncrByFloat: MethodDefinition<_ember_v1_IncrByFloatRequest, _ember_v1_FloatResponse, _ember_v1_IncrByFloatRequest__Output, _ember_v1_FloatResponse__Output> @@ -194,11 +221,15 @@ export interface EmberCacheDefinition { LSet: MethodDefinition<_ember_v1_LSetRequest, _ember_v1_StatusResponse, _ember_v1_LSetRequest__Output, _ember_v1_StatusResponse__Output> LTrim: MethodDefinition<_ember_v1_LTrimRequest, _ember_v1_StatusResponse, _ember_v1_LTrimRequest__Output, _ember_v1_StatusResponse__Output> LastSave: MethodDefinition<_ember_v1_LastSaveRequest, _ember_v1_IntResponse, _ember_v1_LastSaveRequest__Output, _ember_v1_IntResponse__Output> + Lmpop: MethodDefinition<_ember_v1_LmpopRequest, _ember_v1_LmpopResponse, _ember_v1_LmpopRequest__Output, _ember_v1_LmpopResponse__Output> MGet: MethodDefinition<_ember_v1_MGetRequest, _ember_v1_MGetResponse, _ember_v1_MGetRequest__Output, _ember_v1_MGetResponse__Output> MSet: MethodDefinition<_ember_v1_MSetRequest, _ember_v1_MSetResponse, _ember_v1_MSetRequest__Output, _ember_v1_MSetResponse__Output> + Msetnx: MethodDefinition<_ember_v1_MsetnxRequest, _ember_v1_BoolResponse, _ember_v1_MsetnxRequest__Output, _ember_v1_BoolResponse__Output> PExpire: MethodDefinition<_ember_v1_PExpireRequest, _ember_v1_BoolResponse, _ember_v1_PExpireRequest__Output, _ember_v1_BoolResponse__Output> PTtl: MethodDefinition<_ember_v1_PTtlRequest, _ember_v1_TtlResponse, _ember_v1_PTtlRequest__Output, _ember_v1_TtlResponse__Output> Persist: MethodDefinition<_ember_v1_PersistRequest, _ember_v1_BoolResponse, _ember_v1_PersistRequest__Output, _ember_v1_BoolResponse__Output> + Pexpireat: MethodDefinition<_ember_v1_PexpireatRequest, _ember_v1_BoolResponse, _ember_v1_PexpireatRequest__Output, _ember_v1_BoolResponse__Output> + Pexpiretime: MethodDefinition<_ember_v1_PexpiretimeRequest, _ember_v1_IntResponse, _ember_v1_PexpiretimeRequest__Output, _ember_v1_IntResponse__Output> Ping: MethodDefinition<_ember_v1_PingRequest, _ember_v1_PingResponse, _ember_v1_PingRequest__Output, _ember_v1_PingResponse__Output> Pipeline: MethodDefinition<_ember_v1_PipelineRequest, _ember_v1_PipelineResponse, _ember_v1_PipelineRequest__Output, _ember_v1_PipelineResponse__Output> PubSubChannels: MethodDefinition<_ember_v1_PubSubChannelsRequest, _ember_v1_KeysResponse, _ember_v1_PubSubChannelsRequest__Output, _ember_v1_KeysResponse__Output> @@ -227,9 +258,12 @@ export interface EmberCacheDefinition { Scan: MethodDefinition<_ember_v1_ScanRequest, _ember_v1_ScanResponse, _ember_v1_ScanRequest__Output, _ember_v1_ScanResponse__Output> Set: MethodDefinition<_ember_v1_SetRequest, _ember_v1_SetResponse, _ember_v1_SetRequest__Output, _ember_v1_SetResponse__Output> SetRange: MethodDefinition<_ember_v1_SetRangeRequest, _ember_v1_IntResponse, _ember_v1_SetRangeRequest__Output, _ember_v1_IntResponse__Output> + Setbit: MethodDefinition<_ember_v1_SetbitRequest, _ember_v1_IntResponse, _ember_v1_SetbitRequest__Output, _ember_v1_IntResponse__Output> + Sintercard: MethodDefinition<_ember_v1_SintercardRequest, _ember_v1_IntResponse, _ember_v1_SintercardRequest__Output, _ember_v1_IntResponse__Output> SlowLogGet: MethodDefinition<_ember_v1_SlowLogGetRequest, _ember_v1_SlowLogGetResponse, _ember_v1_SlowLogGetRequest__Output, _ember_v1_SlowLogGetResponse__Output> SlowLogLen: MethodDefinition<_ember_v1_SlowLogLenRequest, _ember_v1_IntResponse, _ember_v1_SlowLogLenRequest__Output, _ember_v1_IntResponse__Output> SlowLogReset: MethodDefinition<_ember_v1_SlowLogResetRequest, _ember_v1_StatusResponse, _ember_v1_SlowLogResetRequest__Output, _ember_v1_StatusResponse__Output> + Smove: MethodDefinition<_ember_v1_SmoveRequest, _ember_v1_BoolResponse, _ember_v1_SmoveRequest__Output, _ember_v1_BoolResponse__Output> Strlen: MethodDefinition<_ember_v1_StrlenRequest, _ember_v1_IntResponse, _ember_v1_StrlenRequest__Output, _ember_v1_IntResponse__Output> Subscribe: MethodDefinition<_ember_v1_SubscribeRequest, _ember_v1_SubscribeEvent, _ember_v1_SubscribeRequest__Output, _ember_v1_SubscribeEvent__Output> Time: MethodDefinition<_ember_v1_TimeRequest, _ember_v1_TimeResponse, _ember_v1_TimeRequest__Output, _ember_v1_TimeResponse__Output> @@ -263,4 +297,6 @@ export interface EmberCacheDefinition { ZScan: MethodDefinition<_ember_v1_ZScanRequest, _ember_v1_ZScanResponse, _ember_v1_ZScanRequest__Output, _ember_v1_ZScanResponse__Output> ZScore: MethodDefinition<_ember_v1_ZScoreRequest, _ember_v1_OptionalFloatResponse, _ember_v1_ZScoreRequest__Output, _ember_v1_OptionalFloatResponse__Output> ZUnion: MethodDefinition<_ember_v1_ZUnionRequest, _ember_v1_ZRangeResponse, _ember_v1_ZUnionRequest__Output, _ember_v1_ZRangeResponse__Output> + Zmpop: MethodDefinition<_ember_v1_ZmpopRequest, _ember_v1_ZmpopResponse, _ember_v1_ZmpopRequest__Output, _ember_v1_ZmpopResponse__Output> + Zrandmember: MethodDefinition<_ember_v1_ZrandmemberRequest, _ember_v1_ArrayResponse, _ember_v1_ZrandmemberRequest__Output, _ember_v1_ArrayResponse__Output> } diff --git a/clients/ember-ts/src/generated/ember/v1/ExpireatRequest.ts b/clients/ember-ts/src/generated/ember/v1/ExpireatRequest.ts new file mode 100644 index 00000000..3631263d --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/ExpireatRequest.ts @@ -0,0 +1,13 @@ +// Original file: ../../proto/ember/v1/ember.proto + +import type { Long } from '@grpc/proto-loader'; + +export interface ExpireatRequest { + 'key'?: (string); + 'timestamp'?: (number | string | Long); +} + +export interface ExpireatRequest__Output { + 'key'?: (string); + 'timestamp'?: (Long); +} diff --git a/clients/ember-ts/src/generated/ember/v1/ExpiretimeRequest.ts b/clients/ember-ts/src/generated/ember/v1/ExpiretimeRequest.ts new file mode 100644 index 00000000..c2d554d3 --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/ExpiretimeRequest.ts @@ -0,0 +1,10 @@ +// Original file: ../../proto/ember/v1/ember.proto + + +export interface ExpiretimeRequest { + 'key'?: (string); +} + +export interface ExpiretimeRequest__Output { + 'key'?: (string); +} diff --git a/clients/ember-ts/src/generated/ember/v1/GetbitRequest.ts b/clients/ember-ts/src/generated/ember/v1/GetbitRequest.ts new file mode 100644 index 00000000..e338be74 --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/GetbitRequest.ts @@ -0,0 +1,13 @@ +// Original file: ../../proto/ember/v1/ember.proto + +import type { Long } from '@grpc/proto-loader'; + +export interface GetbitRequest { + 'key'?: (string); + 'offset'?: (number | string | Long); +} + +export interface GetbitRequest__Output { + 'key'?: (string); + 'offset'?: (Long); +} diff --git a/clients/ember-ts/src/generated/ember/v1/GetsetRequest.ts b/clients/ember-ts/src/generated/ember/v1/GetsetRequest.ts new file mode 100644 index 00000000..a760f1a0 --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/GetsetRequest.ts @@ -0,0 +1,12 @@ +// Original file: ../../proto/ember/v1/ember.proto + + +export interface GetsetRequest { + 'key'?: (string); + 'value'?: (Buffer | Uint8Array | string); +} + +export interface GetsetRequest__Output { + 'key'?: (string); + 'value'?: (Buffer); +} diff --git a/clients/ember-ts/src/generated/ember/v1/HrandfieldRequest.ts b/clients/ember-ts/src/generated/ember/v1/HrandfieldRequest.ts new file mode 100644 index 00000000..eccff410 --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/HrandfieldRequest.ts @@ -0,0 +1,16 @@ +// Original file: ../../proto/ember/v1/ember.proto + + +export interface HrandfieldRequest { + 'key'?: (string); + 'hasCount'?: (boolean); + 'count'?: (number); + 'withValues'?: (boolean); +} + +export interface HrandfieldRequest__Output { + 'key'?: (string); + 'hasCount'?: (boolean); + 'count'?: (number); + 'withValues'?: (boolean); +} diff --git a/clients/ember-ts/src/generated/ember/v1/LmpopRequest.ts b/clients/ember-ts/src/generated/ember/v1/LmpopRequest.ts new file mode 100644 index 00000000..4fb90b6a --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/LmpopRequest.ts @@ -0,0 +1,14 @@ +// Original file: ../../proto/ember/v1/ember.proto + + +export interface LmpopRequest { + 'keys'?: (string)[]; + 'left'?: (boolean); + 'count'?: (number); +} + +export interface LmpopRequest__Output { + 'keys'?: (string)[]; + 'left'?: (boolean); + 'count'?: (number); +} diff --git a/clients/ember-ts/src/generated/ember/v1/LmpopResponse.ts b/clients/ember-ts/src/generated/ember/v1/LmpopResponse.ts new file mode 100644 index 00000000..e88bd5ea --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/LmpopResponse.ts @@ -0,0 +1,14 @@ +// Original file: ../../proto/ember/v1/ember.proto + + +export interface LmpopResponse { + 'found'?: (boolean); + 'key'?: (string); + 'elements'?: (Buffer | Uint8Array | string)[]; +} + +export interface LmpopResponse__Output { + 'found'?: (boolean); + 'key'?: (string); + 'elements'?: (Buffer)[]; +} diff --git a/clients/ember-ts/src/generated/ember/v1/MsetnxRequest.ts b/clients/ember-ts/src/generated/ember/v1/MsetnxRequest.ts new file mode 100644 index 00000000..835d59ba --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/MsetnxRequest.ts @@ -0,0 +1,11 @@ +// Original file: ../../proto/ember/v1/ember.proto + +import type { KeyValue as _ember_v1_KeyValue, KeyValue__Output as _ember_v1_KeyValue__Output } from '../../ember/v1/KeyValue'; + +export interface MsetnxRequest { + 'pairs'?: (_ember_v1_KeyValue)[]; +} + +export interface MsetnxRequest__Output { + 'pairs'?: (_ember_v1_KeyValue__Output)[]; +} diff --git a/clients/ember-ts/src/generated/ember/v1/PexpireatRequest.ts b/clients/ember-ts/src/generated/ember/v1/PexpireatRequest.ts new file mode 100644 index 00000000..1422e3c2 --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/PexpireatRequest.ts @@ -0,0 +1,13 @@ +// Original file: ../../proto/ember/v1/ember.proto + +import type { Long } from '@grpc/proto-loader'; + +export interface PexpireatRequest { + 'key'?: (string); + 'timestampMs'?: (number | string | Long); +} + +export interface PexpireatRequest__Output { + 'key'?: (string); + 'timestampMs'?: (Long); +} diff --git a/clients/ember-ts/src/generated/ember/v1/PexpiretimeRequest.ts b/clients/ember-ts/src/generated/ember/v1/PexpiretimeRequest.ts new file mode 100644 index 00000000..e4fe216f --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/PexpiretimeRequest.ts @@ -0,0 +1,10 @@ +// Original file: ../../proto/ember/v1/ember.proto + + +export interface PexpiretimeRequest { + 'key'?: (string); +} + +export interface PexpiretimeRequest__Output { + 'key'?: (string); +} diff --git a/clients/ember-ts/src/generated/ember/v1/PipelineRequest.ts b/clients/ember-ts/src/generated/ember/v1/PipelineRequest.ts index e4b9d4b4..3d7977a7 100644 --- a/clients/ember-ts/src/generated/ember/v1/PipelineRequest.ts +++ b/clients/ember-ts/src/generated/ember/v1/PipelineRequest.ts @@ -110,6 +110,23 @@ import type { ZScanRequest as _ember_v1_ZScanRequest, ZScanRequest__Output as _e import type { SScanRequest as _ember_v1_SScanRequest, SScanRequest__Output as _ember_v1_SScanRequest__Output } from '../../ember/v1/SScanRequest'; import type { TimeRequest as _ember_v1_TimeRequest, TimeRequest__Output as _ember_v1_TimeRequest__Output } from '../../ember/v1/TimeRequest'; import type { LastSaveRequest as _ember_v1_LastSaveRequest, LastSaveRequest__Output as _ember_v1_LastSaveRequest__Output } from '../../ember/v1/LastSaveRequest'; +import type { ExpiretimeRequest as _ember_v1_ExpiretimeRequest, ExpiretimeRequest__Output as _ember_v1_ExpiretimeRequest__Output } from '../../ember/v1/ExpiretimeRequest'; +import type { PexpiretimeRequest as _ember_v1_PexpiretimeRequest, PexpiretimeRequest__Output as _ember_v1_PexpiretimeRequest__Output } from '../../ember/v1/PexpiretimeRequest'; +import type { ExpireatRequest as _ember_v1_ExpireatRequest, ExpireatRequest__Output as _ember_v1_ExpireatRequest__Output } from '../../ember/v1/ExpireatRequest'; +import type { PexpireatRequest as _ember_v1_PexpireatRequest, PexpireatRequest__Output as _ember_v1_PexpireatRequest__Output } from '../../ember/v1/PexpireatRequest'; +import type { GetsetRequest as _ember_v1_GetsetRequest, GetsetRequest__Output as _ember_v1_GetsetRequest__Output } from '../../ember/v1/GetsetRequest'; +import type { MsetnxRequest as _ember_v1_MsetnxRequest, MsetnxRequest__Output as _ember_v1_MsetnxRequest__Output } from '../../ember/v1/MsetnxRequest'; +import type { GetbitRequest as _ember_v1_GetbitRequest, GetbitRequest__Output as _ember_v1_GetbitRequest__Output } from '../../ember/v1/GetbitRequest'; +import type { SetbitRequest as _ember_v1_SetbitRequest, SetbitRequest__Output as _ember_v1_SetbitRequest__Output } from '../../ember/v1/SetbitRequest'; +import type { BitcountRequest as _ember_v1_BitcountRequest, BitcountRequest__Output as _ember_v1_BitcountRequest__Output } from '../../ember/v1/BitcountRequest'; +import type { BitposRequest as _ember_v1_BitposRequest, BitposRequest__Output as _ember_v1_BitposRequest__Output } from '../../ember/v1/BitposRequest'; +import type { BitopRequest as _ember_v1_BitopRequest, BitopRequest__Output as _ember_v1_BitopRequest__Output } from '../../ember/v1/BitopRequest'; +import type { SmoveRequest as _ember_v1_SmoveRequest, SmoveRequest__Output as _ember_v1_SmoveRequest__Output } from '../../ember/v1/SmoveRequest'; +import type { SintercardRequest as _ember_v1_SintercardRequest, SintercardRequest__Output as _ember_v1_SintercardRequest__Output } from '../../ember/v1/SintercardRequest'; +import type { LmpopRequest as _ember_v1_LmpopRequest, LmpopRequest__Output as _ember_v1_LmpopRequest__Output } from '../../ember/v1/LmpopRequest'; +import type { ZmpopRequest as _ember_v1_ZmpopRequest, ZmpopRequest__Output as _ember_v1_ZmpopRequest__Output } from '../../ember/v1/ZmpopRequest'; +import type { HrandfieldRequest as _ember_v1_HrandfieldRequest, HrandfieldRequest__Output as _ember_v1_HrandfieldRequest__Output } from '../../ember/v1/HrandfieldRequest'; +import type { ZrandmemberRequest as _ember_v1_ZrandmemberRequest, ZrandmemberRequest__Output as _ember_v1_ZrandmemberRequest__Output } from '../../ember/v1/ZrandmemberRequest'; import type { Long } from '@grpc/proto-loader'; export interface PipelineRequest { @@ -224,7 +241,24 @@ export interface PipelineRequest { 'sscan'?: (_ember_v1_SScanRequest | null); 'time'?: (_ember_v1_TimeRequest | null); 'lastSave'?: (_ember_v1_LastSaveRequest | null); - 'command'?: "get"|"set"|"del"|"exists"|"incr"|"incrBy"|"decrBy"|"incrByFloat"|"append"|"strlen"|"expire"|"pexpire"|"persist"|"ttl"|"pttl"|"type"|"lpush"|"rpush"|"lpop"|"rpop"|"lrange"|"llen"|"hset"|"hget"|"hgetall"|"hdel"|"hexists"|"hlen"|"hincrBy"|"hkeys"|"hvals"|"hmget"|"sadd"|"srem"|"smembers"|"sismember"|"scard"|"zadd"|"zrem"|"zscore"|"zrank"|"zcard"|"zrange"|"vadd"|"vsim"|"vrem"|"vget"|"vcard"|"vdim"|"vinfo"|"ping"|"flushdb"|"dbsize"|"mget"|"mset"|"keys"|"rename"|"scan"|"echo"|"decr"|"unlink"|"bgsave"|"bgrewriteaof"|"slowlogGet"|"slowlogLen"|"slowlogReset"|"publish"|"pubsubChannels"|"pubsubNumsub"|"pubsubNumpat"|"vaddBatch"|"getDel"|"getEx"|"getRange"|"setRange"|"copy"|"randomKey"|"touch"|"lindex"|"lset"|"ltrim"|"linsert"|"lrem"|"lpos"|"lmove"|"sunion"|"sinter"|"sdiff"|"sunionStore"|"sinterStore"|"sdiffStore"|"srandMember"|"spop"|"smismember"|"hscan"|"zrevRank"|"zrevRange"|"zcount"|"zincrby"|"zrangeByScore"|"zrevRangeByScore"|"zpopmin"|"zpopmax"|"zdiff"|"zinter"|"zunion"|"zscan"|"sscan"|"time"|"lastSave"; + 'expiretime'?: (_ember_v1_ExpiretimeRequest | null); + 'pexpiretime'?: (_ember_v1_PexpiretimeRequest | null); + 'expireat'?: (_ember_v1_ExpireatRequest | null); + 'pexpireat'?: (_ember_v1_PexpireatRequest | null); + 'getset'?: (_ember_v1_GetsetRequest | null); + 'msetnx'?: (_ember_v1_MsetnxRequest | null); + 'getbit'?: (_ember_v1_GetbitRequest | null); + 'setbit'?: (_ember_v1_SetbitRequest | null); + 'bitcount'?: (_ember_v1_BitcountRequest | null); + 'bitpos'?: (_ember_v1_BitposRequest | null); + 'bitop'?: (_ember_v1_BitopRequest | null); + 'smove'?: (_ember_v1_SmoveRequest | null); + 'sintercard'?: (_ember_v1_SintercardRequest | null); + 'lmpop'?: (_ember_v1_LmpopRequest | null); + 'zmpop'?: (_ember_v1_ZmpopRequest | null); + 'hrandfield'?: (_ember_v1_HrandfieldRequest | null); + 'zrandmember'?: (_ember_v1_ZrandmemberRequest | null); + 'command'?: "get"|"set"|"del"|"exists"|"incr"|"incrBy"|"decrBy"|"incrByFloat"|"append"|"strlen"|"expire"|"pexpire"|"persist"|"ttl"|"pttl"|"type"|"lpush"|"rpush"|"lpop"|"rpop"|"lrange"|"llen"|"hset"|"hget"|"hgetall"|"hdel"|"hexists"|"hlen"|"hincrBy"|"hkeys"|"hvals"|"hmget"|"sadd"|"srem"|"smembers"|"sismember"|"scard"|"zadd"|"zrem"|"zscore"|"zrank"|"zcard"|"zrange"|"vadd"|"vsim"|"vrem"|"vget"|"vcard"|"vdim"|"vinfo"|"ping"|"flushdb"|"dbsize"|"mget"|"mset"|"keys"|"rename"|"scan"|"echo"|"decr"|"unlink"|"bgsave"|"bgrewriteaof"|"slowlogGet"|"slowlogLen"|"slowlogReset"|"publish"|"pubsubChannels"|"pubsubNumsub"|"pubsubNumpat"|"vaddBatch"|"getDel"|"getEx"|"getRange"|"setRange"|"copy"|"randomKey"|"touch"|"lindex"|"lset"|"ltrim"|"linsert"|"lrem"|"lpos"|"lmove"|"sunion"|"sinter"|"sdiff"|"sunionStore"|"sinterStore"|"sdiffStore"|"srandMember"|"spop"|"smismember"|"hscan"|"zrevRank"|"zrevRange"|"zcount"|"zincrby"|"zrangeByScore"|"zrevRangeByScore"|"zpopmin"|"zpopmax"|"zdiff"|"zinter"|"zunion"|"zscan"|"sscan"|"time"|"lastSave"|"expiretime"|"pexpiretime"|"expireat"|"pexpireat"|"getset"|"msetnx"|"getbit"|"setbit"|"bitcount"|"bitpos"|"bitop"|"smove"|"sintercard"|"lmpop"|"zmpop"|"hrandfield"|"zrandmember"; } export interface PipelineRequest__Output { @@ -339,4 +373,21 @@ export interface PipelineRequest__Output { 'sscan'?: (_ember_v1_SScanRequest__Output); 'time'?: (_ember_v1_TimeRequest__Output); 'lastSave'?: (_ember_v1_LastSaveRequest__Output); + 'expiretime'?: (_ember_v1_ExpiretimeRequest__Output); + 'pexpiretime'?: (_ember_v1_PexpiretimeRequest__Output); + 'expireat'?: (_ember_v1_ExpireatRequest__Output); + 'pexpireat'?: (_ember_v1_PexpireatRequest__Output); + 'getset'?: (_ember_v1_GetsetRequest__Output); + 'msetnx'?: (_ember_v1_MsetnxRequest__Output); + 'getbit'?: (_ember_v1_GetbitRequest__Output); + 'setbit'?: (_ember_v1_SetbitRequest__Output); + 'bitcount'?: (_ember_v1_BitcountRequest__Output); + 'bitpos'?: (_ember_v1_BitposRequest__Output); + 'bitop'?: (_ember_v1_BitopRequest__Output); + 'smove'?: (_ember_v1_SmoveRequest__Output); + 'sintercard'?: (_ember_v1_SintercardRequest__Output); + 'lmpop'?: (_ember_v1_LmpopRequest__Output); + 'zmpop'?: (_ember_v1_ZmpopRequest__Output); + 'hrandfield'?: (_ember_v1_HrandfieldRequest__Output); + 'zrandmember'?: (_ember_v1_ZrandmemberRequest__Output); } diff --git a/clients/ember-ts/src/generated/ember/v1/PipelineResponse.ts b/clients/ember-ts/src/generated/ember/v1/PipelineResponse.ts index 4784135e..55ff1e51 100644 --- a/clients/ember-ts/src/generated/ember/v1/PipelineResponse.ts +++ b/clients/ember-ts/src/generated/ember/v1/PipelineResponse.ts @@ -33,6 +33,8 @@ import type { HScanResponse as _ember_v1_HScanResponse, HScanResponse__Output as import type { ZScanResponse as _ember_v1_ZScanResponse, ZScanResponse__Output as _ember_v1_ZScanResponse__Output } from '../../ember/v1/ZScanResponse'; import type { SScanResponse as _ember_v1_SScanResponse, SScanResponse__Output as _ember_v1_SScanResponse__Output } from '../../ember/v1/SScanResponse'; import type { TimeResponse as _ember_v1_TimeResponse, TimeResponse__Output as _ember_v1_TimeResponse__Output } from '../../ember/v1/TimeResponse'; +import type { LmpopResponse as _ember_v1_LmpopResponse, LmpopResponse__Output as _ember_v1_LmpopResponse__Output } from '../../ember/v1/LmpopResponse'; +import type { ZmpopResponse as _ember_v1_ZmpopResponse, ZmpopResponse__Output as _ember_v1_ZmpopResponse__Output } from '../../ember/v1/ZmpopResponse'; import type { Long } from '@grpc/proto-loader'; export interface PipelineResponse { @@ -70,7 +72,9 @@ export interface PipelineResponse { 'zscan'?: (_ember_v1_ZScanResponse | null); 'sscan'?: (_ember_v1_SScanResponse | null); 'timeResp'?: (_ember_v1_TimeResponse | null); - 'result'?: "get"|"set"|"del"|"intVal"|"boolVal"|"floatVal"|"status"|"ttl"|"type"|"array"|"hash"|"optionalArray"|"keys"|"scan"|"optionalFloat"|"optionalInt"|"zrange"|"vsim"|"vget"|"vinfo"|"mget"|"mset"|"ping"|"error"|"info"|"echo"|"slowlogGet"|"pubsubNumsub"|"boolArray"|"hscan"|"zscan"|"sscan"|"timeResp"; + 'lmpop'?: (_ember_v1_LmpopResponse | null); + 'zmpop'?: (_ember_v1_ZmpopResponse | null); + 'result'?: "get"|"set"|"del"|"intVal"|"boolVal"|"floatVal"|"status"|"ttl"|"type"|"array"|"hash"|"optionalArray"|"keys"|"scan"|"optionalFloat"|"optionalInt"|"zrange"|"vsim"|"vget"|"vinfo"|"mget"|"mset"|"ping"|"error"|"info"|"echo"|"slowlogGet"|"pubsubNumsub"|"boolArray"|"hscan"|"zscan"|"sscan"|"timeResp"|"lmpop"|"zmpop"; } export interface PipelineResponse__Output { @@ -108,4 +112,6 @@ export interface PipelineResponse__Output { 'zscan'?: (_ember_v1_ZScanResponse__Output); 'sscan'?: (_ember_v1_SScanResponse__Output); 'timeResp'?: (_ember_v1_TimeResponse__Output); + 'lmpop'?: (_ember_v1_LmpopResponse__Output); + 'zmpop'?: (_ember_v1_ZmpopResponse__Output); } diff --git a/clients/ember-ts/src/generated/ember/v1/SetbitRequest.ts b/clients/ember-ts/src/generated/ember/v1/SetbitRequest.ts new file mode 100644 index 00000000..2d092d1b --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/SetbitRequest.ts @@ -0,0 +1,15 @@ +// Original file: ../../proto/ember/v1/ember.proto + +import type { Long } from '@grpc/proto-loader'; + +export interface SetbitRequest { + 'key'?: (string); + 'offset'?: (number | string | Long); + 'value'?: (number); +} + +export interface SetbitRequest__Output { + 'key'?: (string); + 'offset'?: (Long); + 'value'?: (number); +} diff --git a/clients/ember-ts/src/generated/ember/v1/SintercardRequest.ts b/clients/ember-ts/src/generated/ember/v1/SintercardRequest.ts new file mode 100644 index 00000000..55c763b1 --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/SintercardRequest.ts @@ -0,0 +1,13 @@ +// Original file: ../../proto/ember/v1/ember.proto + +import type { Long } from '@grpc/proto-loader'; + +export interface SintercardRequest { + 'keys'?: (string)[]; + 'limit'?: (number | string | Long); +} + +export interface SintercardRequest__Output { + 'keys'?: (string)[]; + 'limit'?: (Long); +} diff --git a/clients/ember-ts/src/generated/ember/v1/SmoveRequest.ts b/clients/ember-ts/src/generated/ember/v1/SmoveRequest.ts new file mode 100644 index 00000000..dfc05d8d --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/SmoveRequest.ts @@ -0,0 +1,14 @@ +// Original file: ../../proto/ember/v1/ember.proto + + +export interface SmoveRequest { + 'source'?: (string); + 'destination'?: (string); + 'member'?: (string); +} + +export interface SmoveRequest__Output { + 'source'?: (string); + 'destination'?: (string); + 'member'?: (string); +} diff --git a/clients/ember-ts/src/generated/ember/v1/ZmpopRequest.ts b/clients/ember-ts/src/generated/ember/v1/ZmpopRequest.ts new file mode 100644 index 00000000..178dfb2d --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/ZmpopRequest.ts @@ -0,0 +1,14 @@ +// Original file: ../../proto/ember/v1/ember.proto + + +export interface ZmpopRequest { + 'keys'?: (string)[]; + 'min'?: (boolean); + 'count'?: (number); +} + +export interface ZmpopRequest__Output { + 'keys'?: (string)[]; + 'min'?: (boolean); + 'count'?: (number); +} diff --git a/clients/ember-ts/src/generated/ember/v1/ZmpopResponse.ts b/clients/ember-ts/src/generated/ember/v1/ZmpopResponse.ts new file mode 100644 index 00000000..3a29fb63 --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/ZmpopResponse.ts @@ -0,0 +1,15 @@ +// Original file: ../../proto/ember/v1/ember.proto + +import type { ScoreMember as _ember_v1_ScoreMember, ScoreMember__Output as _ember_v1_ScoreMember__Output } from '../../ember/v1/ScoreMember'; + +export interface ZmpopResponse { + 'found'?: (boolean); + 'key'?: (string); + 'members'?: (_ember_v1_ScoreMember)[]; +} + +export interface ZmpopResponse__Output { + 'found'?: (boolean); + 'key'?: (string); + 'members'?: (_ember_v1_ScoreMember__Output)[]; +} diff --git a/clients/ember-ts/src/generated/ember/v1/ZrandmemberRequest.ts b/clients/ember-ts/src/generated/ember/v1/ZrandmemberRequest.ts new file mode 100644 index 00000000..f4532ed8 --- /dev/null +++ b/clients/ember-ts/src/generated/ember/v1/ZrandmemberRequest.ts @@ -0,0 +1,16 @@ +// Original file: ../../proto/ember/v1/ember.proto + + +export interface ZrandmemberRequest { + 'key'?: (string); + 'hasCount'?: (boolean); + 'count'?: (number); + 'withScores'?: (boolean); +} + +export interface ZrandmemberRequest__Output { + 'key'?: (string); + 'hasCount'?: (boolean); + 'count'?: (number); + 'withScores'?: (boolean); +} diff --git a/scripts/check-client-drift.sh b/scripts/check-client-drift.sh new file mode 100755 index 00000000..7bac8e92 --- /dev/null +++ b/scripts/check-client-drift.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +# Verifies that every RPC in the canonical proto exists in each client's +# generated stubs (and the TS client's vendored proto copy). Catches +# clients whose codegen wasn't re-run after the proto changed — in #337 +# only the Go client was regenerated and the Python/TS clients silently +# fell 17 RPCs behind. +# +# Name-presence checking is deliberate: byte-exact regeneration in CI is +# brittle across protoc/plugin versions, and missing RPCs are the drift +# class that actually occurs. +set -euo pipefail + +cd "$(dirname "$0")/.." + +PROTO=proto/ember/v1/ember.proto +GO_STUB=clients/ember-go/proto/ember/v1/ember_grpc.pb.go +PY_STUB=clients/ember-py/ember/proto/ember/v1/ember_pb2_grpc.py +TS_STUB=clients/ember-ts/src/generated/ember/v1/EmberCache.ts +TS_PROTO=clients/ember-ts/proto/ember/v1/ember.proto + +rpcs=$(grep -oE '^[[:space:]]*rpc [A-Za-z0-9]+' "$PROTO" | awk '{print $2}') +missing=0 +for rpc in $rpcs; do + grep -qw "$rpc" "$GO_STUB" || { echo "go client missing rpc: $rpc"; missing=1; } + grep -q "ember.v1.EmberCache/$rpc'" "$PY_STUB" || { echo "python client missing rpc: $rpc"; missing=1; } + grep -qw "$rpc" "$TS_STUB" || { echo "ts client missing rpc: $rpc"; missing=1; } + grep -qE "rpc $rpc\(" "$TS_PROTO" || { echo "ts vendored proto missing rpc: $rpc"; missing=1; } +done + +if [ "$missing" -ne 0 ]; then + echo + echo "client stubs are out of date with $PROTO. regenerate with:" + echo " make -C clients/ember-go proto-gen" + echo " make -C clients/ember-py proto-gen" + echo " make -C clients/ember-ts proto-gen" + exit 1 +fi +echo "all clients in sync: $(echo "$rpcs" | wc -l | tr -d ' ') rpcs"