feat: add Close() method to RedHub server #33
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Benchmark Tests | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| benchmark: | |
| strategy: | |
| matrix: | |
| go-version: ['1.24'] | |
| os: [ubuntu-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: ${{ matrix.go-version }} | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y redis-tools netcat-openbsd | |
| - name: Build server | |
| run: | | |
| cd example/memory_kv | |
| go build -o server | |
| - name: Start server | |
| run: | | |
| cd example/memory_kv | |
| ./server -addr "127.0.0.1:6380" > server.log 2>&1 & | |
| SERVER_PID=$! | |
| echo $SERVER_PID > server.pid | |
| for i in {1..30}; do | |
| if nc -z 127.0.0.1 6380; then | |
| echo "Server is ready" | |
| break | |
| fi | |
| sleep 1 | |
| echo "Waiting for server to start... ($i/30)" | |
| done | |
| if ! nc -z 127.0.0.1 6380; then | |
| echo "Server failed to start" | |
| cat server.log | |
| exit 1 | |
| fi | |
| - name: Warm up | |
| run: | | |
| redis-benchmark -h 127.0.0.1 -p 6380 -n 10000 -t set,get -c 16 -q | |
| - name: Run SET benchmark | |
| run: | | |
| echo "=== SET Benchmark ===" | |
| redis-benchmark -h 127.0.0.1 -p 6380 -n 100000 -t set -c 16 | |
| - name: Run GET benchmark | |
| run: | | |
| echo "=== GET Benchmark ===" | |
| redis-benchmark -h 127.0.0.1 -p 6380 -n 100000 -t get -c 16 | |
| - name: Run mixed SET/GET benchmark | |
| run: | | |
| echo "=== Mixed SET/GET Benchmark ===" | |
| redis-benchmark -h 127.0.0.1 -p 6380 -n 100000 -t set,get -c 16 | |
| - name: Run high concurrency benchmark | |
| run: | | |
| echo "=== High Concurrency Benchmark ===" | |
| redis-benchmark -h 127.0.0.1 -p 6380 -n 100000 -t set,get -c 64 -P 16 | |
| - name: Run pipeline benchmark | |
| run: | | |
| echo "=== Pipeline Benchmark ===" | |
| redis-benchmark -h 127.0.0.1 -p 6380 -n 100000 -t set,get -c 16 -P 32 | |
| - name: Stop server | |
| if: always() | |
| run: | | |
| cd example/memory_kv | |
| if [ -f server.pid ]; then | |
| kill $(cat server.pid) || true | |
| rm server.pid | |
| fi | |
| - name: Show server logs | |
| if: failure() | |
| run: | | |
| cat example/memory_kv/server.log || true | |