Создал задание cron, которое удаляет определенные ключи в Redis.
Пример ключа: \xac\xed\x00\x05t\x00\x15test
При использовании bash и redis-cli кажется, что ключи с HEX-значениями не могут быть правильно проанализированы и удалены:
Code below:
host=${1:-}
port=${2:-6379}
database=${3:-0}
pattern=${4:-"Test"}
cursor=-1
keys=""
echo "Starting to delete"
while [ $cursor -ne 0 ]; do
if [ $cursor -eq -1 ]
then
cursor=0
fi
reply=`redis-cli -h $host -p $port SCAN $cursor MATCH $pattern`
cursor=`expr "$reply" : '\([0-9]*[0-9 ]\)'`
keys=${reply##[0-9]*[0-9 ]}
echo "$keys"
redis-cli -h $host -p $port DEL $keys
done
"$pattern"
на$(printf "$pattern")
- person Mark Setchell   schedule 04.11.2020bash
использует строки с нулевым завершением в стиле C. - person Mark Setchell   schedule 05.11.2020