New proposed SE.Redis v3.* core, multiplexed, 50 logical clients (sharing a single underlying connection),
batching 100 commands at a time, async without cancellation (i.e. CancellationToken.None)
> dotnet run -f net9.0 -c Release -- -c 50 -P 100 -n 1000000 +m
====== PING_BULK ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 1.22 seconds, 818,608 ops/sec
Typical result: BulkString, Length: 3, Protocol Bytes: 9
====== SET ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 0.96 seconds, 1,037,525 ops/sec
Typical result: SimpleString, Length: 2, Protocol Bytes: 5
====== GET ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 0.90 seconds, 1,117,281 ops/sec
Typical result: BulkString, Length: 3, Protocol Bytes: 9
====== INCR ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 0.99 seconds, 1,007,144 ops/sec
Typical result: 995800
====== LPUSH ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 0.88 seconds, 1,139,742 ops/sec
Typical result: 997500
====== RPUSH ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 0.89 seconds, 1,124,598 ops/sec
Typical result: 996500
====== LPOP ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 0.95 seconds, 1,051,192 ops/sec
Typical result: BulkString, Length: 3, Protocol Bytes: 9
====== RPOP ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 0.83 seconds, 1,197,680 ops/sec
Typical result: BulkString, Length: 3, Protocol Bytes: 9
====== SADD ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 0.80 seconds, 1,243,322 ops/sec
Typical result: 0
====== HSET ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 0.81 seconds, 1,233,935 ops/sec
Typical result: 0
====== SPOP ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 0.83 seconds, 1,199,329 ops/sec
Typical result: BulkString, Length: 0, Protocol Bytes: 5
====== ZADD ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 0.87 seconds, 1,146,431 ops/sec
Typical result: 0
====== ZPOPMIN ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 0.82 seconds, 1,225,703 ops/sec
Typical result: Array, Length: 0, Protocol Bytes: 4
====== MSET (10 keys) ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 4.24 seconds, 235,600 ops/sec
====== XADD ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 1.58 seconds, 632,482 ops/sec
Typical result: BulkString, Length: 16, Protocol Bytes: 23
====== LRANGE_100 ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 7.45 seconds, 134,157 ops/sec
Typical result: Array, Length: 100, Protocol Bytes: 906
====== LRANGE_300 ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 20.58 seconds, 48,600 ops/sec
Typical result: Array, Length: 300, Protocol Bytes: 2706
====== LRANGE_500 ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 33.52 seconds, 29,829 ops/sec
Typical result: Array, Length: 500, Protocol Bytes: 4506
====== LRANGE_600 ====== (clients: 50, ops: 1,000,000, mux, Batch: 100)
1,000,000 requests completed in 40.02 seconds, 24,987 ops/sec
Typical result: Array, Length: 600, Protocol Bytes: 5406