由于同事每次让我这边清空redis数据(string,集合)都需要我来操作比较麻烦,所以开放了个api给他。考虑到golang直接操作redis没新意,换个思路:此api通过控制shell脚本来一步到位。



一 shell脚本



#!/bin/bash

redis-cli -a 123456 -n 0 keys "wbw_0_mid*" | xargs redis-cli -a 123456 -n 0 del
sleep 0.1
redis-cli -a 123456 -n 0 keys "wbw_0_chan*" | xargs redis-cli -a 123456 -n 0 del
sleep 0.1
redis-cli -a 123456 -n 0 keys "wbw_0_ch_mi_*" | xargs redis-cli -a 123456 -n 0 del
sleep 0.1
redis-cli -a 123456 -n 0 ZREMRANGEBYRANK wbw_0_store_lock 0 -1
sleep 0.1


二 golangApi



router.POST("/Reset_wbw_redis", controller.Reset_lm_asa_sv)



func Reset_lm_asa_sv(ctx *gin.Context) {
...

exec.Command("/bin/bash", utils.GlobalObject.Resetsh_path).CombinedOutput()



...
ctx.JSON(http.StatusOK, resp)
return
}


用 exec.Command("/bin/bash", Resetsh_path).CombinedOutput() 命令不会有权限问题