How does one flush an entry from redis?

Havard Eidnes he at
Sun Dec 18 12:17:45 UTC 2022

> Certainly NOT the best solution, but it works (emergencies)
> My redis database contains only 1213 entries, so the processing time is
> acceptable.
> I use a bash script (commented out the line that actually deletes the
> entry, dry run before you uncomment that line).
> #!/bin/bash
> mapfile -t keysArray < <(redis-cli --scan)
> for (( i=0; i<${#keysArray[@]}; i++ )); do
>    data=$(echo "dump ${keysArray[i]}" | redis-cli | tr -d '\0')
>    if [[ "${data}" == *"accounts"*"google"*"com"* ]]; then
>       echo "${keysArray[i]}"
>       # redis-cli del "${keysArray[i]}"
>    fi
> done

Wow, when you say "bash script" there's no kidding, the above is
chock full of bash-specific extensions.  My preference is for
portability, and not to force my own preferences on others, i.e.
using standards as much as possible.

As a non-redis user myself, I *think* the following shell script
should be equivalent to the above, and be portable to other
Bourne shells:


redis-cli --scan | while read e; do
    data=$(echo "dump $e" | redis-cli | tr -d '\0')
    if expr "$data" : ".*accounts.*google.*com.*" > /dev/null;
        echo "$e"
	# redis-cli del "$e"

Best regards,

- Havard

More information about the Unbound-users mailing list