Skip to content

Instantly share code, notes, and snippets.

@gildaf
Created April 13, 2022 07:04
Show Gist options
  • Save gildaf/4f48c71451528c56bd7ebf7f60cb09a5 to your computer and use it in GitHub Desktop.
Save gildaf/4f48c71451528c56bd7ebf7f60cb09a5 to your computer and use it in GitHub Desktop.
Build a 3 nodes redis cluster with acl
ACL_FILE="/tmp/users.acl"
USER="gil"
PASSWORD="somepass"
function create_cluster() {
echo "user $USER on allcommands allkeys resetpass >$PASSWORD" > "$ACL_FILE"
echo "user default off" >> "$ACL_FILE"
MORE_ARGS=" --masterauth $PASSWORD --masteruser $USER --aclfile $ACL_FILE --cluster-enabled yes"
mkdir -p ./env/node_1
(
cd ./env/node_1/
redis-server --port 5001 $MORE_ARGS > redis.log &
)
mkdir -p ./env/node_2
(
cd ./env/node_2/
redis-server --port 5002 $MORE_ARGS > redis.log &
)
mkdir -p ./env/node_3
(
cd ./env/node_3/
redis-server --port 5003 $MORE_ARGS > redis.log &
)
sleep 2
redis-cli --user "$USER" --pass "$PASSWORD" --cluster-yes -p 5001 --cluster create 127.0.0.1:5001 127.0.0.1:5002 127.0.0.1:5003
}
function clean() {
STOP_ARGS="--user "$USER" --pass "$PASSWORD" shutdown nosave"
redis-cli -p 5001 $STOP_ARGS
redis-cli -p 5002 $STOP_ARGS
redis-cli -p 5003 $STOP_ARGS
rm -r ./env/node_1
rm -r ./env/node_2
rm -r ./env/node_3
}
if [ "$1" == "start" ]
then
create_cluster
exit 0
fi
if [ "$1" == "clean" ]
then
clean
exit 0
fi
echo "BAD ARGUMENT $*"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment