22
33VERSION=" $1 "
44
5- CONTAINER_NETWORK=" valkey"
65CONTAINER_PROXY_NAME=" valkey-benchmark-proxy"
76CONTAINER_MASTER_NAME=" valkey-benchmark-master"
87CONTAINER_SLAVE1_NAME=" valkey-benchmark-slave1"
98CONTAINER_SLAVE2_NAME=" valkey-benchmark-slave2"
10- DRYCC_VALKEY_SENTINEL=$CONTAINER_MASTER_NAME
119DRYCC_VALKEY_PASSWORD=123456
1210
1311function clean_before_exit {
@@ -19,87 +17,71 @@ trap clean_before_exit EXIT
1917start-valkey-master () {
2018 podman run -d \
2119 --rm \
22- --network " $CONTAINER_NETWORK " \
23- --ip 192.168.253.10 \
24- --add-host=" $CONTAINER_MASTER_NAME :192.168.253.10" \
25- --add-host=" $CONTAINER_SLAVE1_NAME :192.168.253.11" \
26- --add-host=" $CONTAINER_SLAVE2_NAME :192.168.253.12" \
2720 --env " REDISCLI_AUTH=$DRYCC_VALKEY_PASSWORD " \
28- --env " DRYCC_VALKEY_SENTINEL=$DRYCC_VALKEY_SENTINEL " \
2921 --env " DRYCC_VALKEY_PASSWORD=$DRYCC_VALKEY_PASSWORD " \
3022 --name " $CONTAINER_MASTER_NAME " \
3123 " registry.drycc.cc/drycc/valkey:$VERSION " \
32- valkey-start server $CONTAINER_MASTER_NAME
33- podman exec " $CONTAINER_MASTER_NAME " init-stack valkey-start sentinel $CONTAINER_MASTER_NAME &
24+ sleep infinity
25+
26+ master_ip=$( podman exec " $CONTAINER_MASTER_NAME " hostname -i | tr -d ' \r\n' )
27+ podman exec --env " DRYCC_VALKEY_SENTINEL=$master_ip " " $CONTAINER_MASTER_NAME " init-stack valkey-start server " $master_ip " &
28+ podman exec --env " DRYCC_VALKEY_SENTINEL=$master_ip " " $CONTAINER_MASTER_NAME " init-stack valkey-start sentinel " $master_ip " &
3429}
3530
3631start-valkey-slave1 () {
3732 podman run -d \
3833 --rm \
39- --network " $CONTAINER_NETWORK " \
40- --ip 192.168.253.11 \
41- --add-host=" $CONTAINER_MASTER_NAME :192.168.253.10" \
42- --add-host=" $CONTAINER_SLAVE1_NAME :192.168.253.11" \
43- --add-host=" $CONTAINER_SLAVE2_NAME :192.168.253.12" \
4434 --env " REDISCLI_AUTH=$DRYCC_VALKEY_PASSWORD " \
45- --env " DRYCC_VALKEY_SENTINEL=$DRYCC_VALKEY_SENTINEL " \
4635 --env " DRYCC_VALKEY_PASSWORD=$DRYCC_VALKEY_PASSWORD " \
4736 --name " $CONTAINER_SLAVE1_NAME " \
4837 " registry.drycc.cc/drycc/valkey:$VERSION " \
49- valkey-start server $CONTAINER_SLAVE1_NAME
50- podman exec " $CONTAINER_SLAVE1_NAME " init-stack valkey-start sentinel $CONTAINER_SLAVE1_NAME &
38+ sleep infinity
39+
40+ slave1_ip=$( podman exec -it " $CONTAINER_SLAVE1_NAME " hostname -i | tr -d ' \r\n' )
41+ podman exec --env " DRYCC_VALKEY_SENTINEL=$master_ip " " $CONTAINER_SLAVE1_NAME " init-stack valkey-start server " $slave1_ip " &
42+ podman exec --env " DRYCC_VALKEY_SENTINEL=$master_ip " " $CONTAINER_SLAVE1_NAME " init-stack valkey-start sentinel " $slave1_ip " &
5143}
5244
5345start-valkey-slave2 () {
5446 podman run -d \
5547 --rm \
56- --network " $CONTAINER_NETWORK " \
57- --ip 192.168.253.12 \
58- --add-host=" $CONTAINER_MASTER_NAME :192.168.253.10" \
59- --add-host=" $CONTAINER_SLAVE1_NAME :192.168.253.11" \
60- --add-host=" $CONTAINER_SLAVE2_NAME :192.168.253.12" \
6148 --env " REDISCLI_AUTH=$DRYCC_VALKEY_PASSWORD " \
62- --env " DRYCC_VALKEY_SENTINEL=$DRYCC_VALKEY_SENTINEL " \
6349 --env " DRYCC_VALKEY_PASSWORD=$DRYCC_VALKEY_PASSWORD " \
6450 --name " $CONTAINER_SLAVE2_NAME " \
6551 " registry.drycc.cc/drycc/valkey:$VERSION " \
66- valkey-start server $CONTAINER_SLAVE2_NAME
67- podman exec " $CONTAINER_SLAVE2_NAME " init-stack valkey-start sentinel $CONTAINER_SLAVE2_NAME &
52+ sleep infinity
53+
54+ slave2_ip=$( podman exec -it " $CONTAINER_SLAVE2_NAME " hostname -i | tr -d ' \r\n' )
55+ podman exec --env " DRYCC_VALKEY_SENTINEL=$master_ip " " $CONTAINER_SLAVE2_NAME " init-stack valkey-start server " $slave2_ip " &
56+ podman exec --env " DRYCC_VALKEY_SENTINEL=$master_ip " " $CONTAINER_SLAVE2_NAME " init-stack valkey-start sentinel " $slave2_ip " &
6857}
6958
7059start-valkey-proxy () {
7160 podman run -d \
7261 --rm \
73- --network " $CONTAINER_NETWORK " \
74- --ip 192.168.253.13 \
75- --add-host=" $CONTAINER_MASTER_NAME :192.168.253.10" \
76- --add-host=" $CONTAINER_SLAVE1_NAME :192.168.253.11" \
77- --add-host=" $CONTAINER_SLAVE2_NAME :192.168.253.12" \
7862 --env " REDISCLI_AUTH=$DRYCC_VALKEY_PASSWORD " \
79- --env " DRYCC_VALKEY_SENTINEL=$DRYCC_VALKEY_SENTINEL " \
8063 --env " DRYCC_VALKEY_PASSWORD=$DRYCC_VALKEY_PASSWORD " \
8164 --name " $CONTAINER_PROXY_NAME " \
8265 " registry.drycc.cc/drycc/valkey:$VERSION " \
83- valkey-start proxy
66+ sleep infinity
67+
68+ podman exec --env " DRYCC_VALKEY_SENTINEL=$master_ip " " $CONTAINER_PROXY_NAME " init-stack valkey-start proxy &
8469}
8570
8671clean-valkey () {
8772 {
88- podman stop -i " $CONTAINER_PROXY_NAME "
89- podman stop -i " $CONTAINER_SLAVE1_NAME "
90- podman stop -i " $CONTAINER_SLAVE2_NAME "
91- podman stop -i " $CONTAINER_MASTER_NAME "
92- podman network rm -f " $CONTAINER_NETWORK "
93- } 2>> /dev/null
73+ podman kill " $CONTAINER_PROXY_NAME "
74+ podman kill " $CONTAINER_SLAVE1_NAME "
75+ podman kill " $CONTAINER_SLAVE2_NAME "
76+ podman kill " $CONTAINER_MASTER_NAME "
77+ } >> /dev/null 2>&1
9478}
9579
9680clean-valkey
97- podman network create --subnet=192.168.253.0/24 " $CONTAINER_NETWORK "
9881start-valkey-master
9982start-valkey-slave1
10083start-valkey-slave2
10184start-valkey-proxy
102-
10385echo " run valkey proxy benchmark..."
10486podman exec " $CONTAINER_PROXY_NAME " init-stack valkey-benchmark -p 16379 -a $DRYCC_VALKEY_PASSWORD
10587
0 commit comments