shellを使用してredisのデータを一括削除する

1654 ワード

まずアクティブでないユーザーのuserIdデータを用意し、ファイルとしてこのファイルを読み込みます.
#!/bin/bash
users=`cat not_active_user`
for user in $users; do
  redis-cli -h redis  ip  -a redis     keys  messages:box:$user-0 |xargs redis-cli -h redis  ip -a redis     del
done

読み込み準備のnot_active_userファイル、not_active_userファイルの1行は削除するユーザidを表し、idに基づいて削除するkeyに組み立てられ、redisにログインして削除します.
ここではxargsを使用します.これはredisのパイプコマンドです.
redisのdelコマンドは正規表現を実行しないため、redis一括削除コマンドを削除できます:keys*|xargs redis_cli del
 
redisのlistデータ構造にデータを追加するには、次の手順に従います.
#!/bin/bash
if [ $1 == "demo" ];then
  redis-cli -h   redis   -p 6379 -n 1 lpush YOU_ZAN_GOODS_WHITE_LIST $2
elif [ $1 == "load" ];then
  redis-cli -h   redis   -p 6379 -a      -n 1 lpush YOU_ZAN_GOODS_WHITE_LIST $2
elif [ $1 == "online" ];then
  redis-cli -h   redis   -p 6379 -a      -n 1 lpush YOU_ZAN_GOODS_WHITE_LIST $2
else
  echo "    "
fi

ここに接続されているのは1番ライブラリなので、-n 1で、デフォルトは0番ライブラリです.
redisのlistデータ構造のデータを削除するには、次の手順に従います.
#!/bin/bash
if [ $1 == "demo" ];then
  redis-cli -h   redis   -p 6379 -n 1 lrem YOU_ZAN_GOODS_WHITE_LIST 0 $2
elif [ $1 == "load" ];then
  redis-cli -h   redis   -p 6379 -a   redis   -n 1 lrem YOU_ZAN_GOODS_WHITE_LIST 0 $2
elif [ $1 == "online" ];then
  redis-cli -h   redis   -p 6379 -a   redis   -n 1 lrem YOU_ZAN_GOODS_WHITE_LIST 0 $2
else
  echo "    "
fi

redisパイプコマンドについては、このドキュメントを参照してください.
https://blog.csdn.net/oChangWen/article/details/70229666
redisログインについては、このドキュメントを参照してください.
https://www.cnblogs.com/kongzhongqijing/p/6867960.html