| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #!/bin/bash
- echo "🔴 Redis No-Pipeline Benchmark Suite"
- echo "======================================"
- echo ""
- # Check if Redis is running on default port
- if nc -z localhost 6379 2>/dev/null; then
- echo "⚠️ Redis already running on port 6379"
- echo "Stopping existing Redis server..."
- redis-cli shutdown 2>/dev/null
- sleep 1
- fi
- # Clean up old AOF files
- rm -f appendonly.aof*
- # Start fresh Redis instance with AOF persistence
- echo "🗑️ Starting fresh Redis server with AOF persistence..."
- redis-server --port 6379 --save "" --appendonly yes --appendfsync everysec &
- REDIS_PID=$!
- sleep 2
- echo ""
- echo "📊 Running No-Pipeline Benchmark Tests on Redis..."
- echo ""
- # Test 1: Small writes without pipelining
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- echo "Test 1: Small Writes (100k, 256 bytes, P=1)"
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- redis-benchmark -h localhost -p 6379 -t SET -n 100000 -c 50 --threads 4 -r 100000 -P 1 -d 256 --csv
- echo ""
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- echo "Test 2: Small Reads (100k, P=1)"
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- redis-benchmark -h localhost -p 6379 -t GET -n 100000 -c 50 --threads 4 -r 100000 -P 1 --csv
- echo ""
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- echo "Test 3: Medium Writes (50k, 1KB, P=1)"
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- redis-benchmark -h localhost -p 6379 -t SET -n 50000 -c 50 --threads 4 -r 50000 -P 1 -d 1024 --csv
- echo ""
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- echo "Test 4: Medium Reads (50k, 1KB, P=1)"
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- redis-benchmark -h localhost -p 6379 -t GET -n 50000 -c 50 --threads 4 -r 50000 -P 1 --csv
- echo ""
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- echo "Test 5: Large Writes (10k, 10KB, P=1)"
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- redis-benchmark -h localhost -p 6379 -t SET -n 10000 -c 25 --threads 2 -r 10000 -P 1 -d 10240 --csv
- echo ""
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- echo "Test 6: Large Reads (10k, 10KB, P=1)"
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- redis-benchmark -h localhost -p 6379 -t GET -n 10000 -c 25 --threads 2 -r 10000 -P 1 --csv
- echo ""
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- echo "Test 7: Mixed Workload (50k each, P=1)"
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- redis-benchmark -h localhost -p 6379 -t SET,GET -n 50000 -c 50 --threads 4 -r 100000 -P 1 --csv
- echo ""
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- echo "Test 8: High Concurrency (100k, 100 clients, P=1)"
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- redis-benchmark -h localhost -p 6379 -t GET -n 100000 -c 100 --threads 4 -r 100000 -P 1 --csv
- echo ""
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- echo "Test 9: DELETE Performance (50k, P=1)"
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- redis-benchmark -h localhost -p 6379 -t DEL -n 50000 -c 50 --threads 4 -r 100000 -P 1 --csv
- echo ""
- echo "✅ Redis Benchmark Complete!"
- echo ""
- echo "Checking memory usage..."
- redis-cli INFO memory | grep used_memory_human
- echo ""
- echo "Checking AOF persistence files..."
- ls -lh appendonly.aof* 2>/dev/null || echo "AOF files managed by Redis"
- echo ""
- echo "Shutting down Redis..."
- redis-cli shutdown
- wait $REDIS_PID 2>/dev/null
|