页面“Golang”与“Redis批量删除key”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
 
 
第1行: 第1行:
=install=
+
[[category:ops]] [[category:redis]] 
 +
=redis cluster 批量删除key=
 
<pre>
 
<pre>
 +
#June 19 2020  有空结果一下原来的版本再优化一下
 +
cat redis_del_key.sh
 +
#!/bin/bash
 +
# Usage
 +
#redis_list=("host:post" "host:post")
  
从go 1.8开始,GOPATH环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,
+
redis_list=( "172.16.200.12:7003" "172.16.200.7:7004" "172.16.200.7:7005" "172.16.200.13:7000" "172.16.200.13:7001" "172.16.200.12:7002")
 +
#redis_list=( "172.16.200.13:7000" "172.16.200.13:7001" "172.16.200.12:7002")
 +
#redis_list=("172.16.200.7:7004")
 +
password="3636password"
  
wget -c https://dl.google.com/go/go1.14.4.linux-amd64.tar.gz
+
for info in ${redis_list[@]}
 +
    do
 +
        echo "开始执行:$info" 
 +
        ip=`echo $info | cut -d : -f 1`
 +
        port=`echo $info | cut -d : -f 2`
  
tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
+
      for  loop in  `cat key.txt`
 +
        do
 +
        #echo $loop  |xargs -t -n1 redis-cli -c  -h $ip -p $port -a $password -c del
 +
        echo $loop  |xargs -t -n1 redis-cli -c  -h $ip -p $port -a $password -c keys
 +
        done
  
tar  -xvf go1.14.4.linux-amd64.tar.gz  -C /usr/local/
+
    done
 +
    echo "完成"
  
#加入 添加到环境变量
 
echo 'export PATH=$PATH:/usr/local/go/bin' >>/etc/profile  && source /etc/profile
 
  
vi /etc/profile
 
export PATH=/usr/local/go/bin/:$PATH
 
#export GOPATH=/root/go/  #(可选设置) 如果你用root运行
 
export GOROOT=/usr/local/go/
 
#export GOARCH=amd64
 
#export GOOS=linux
 
export GOTOOLS=$GOROOT/pkg/tool
 
#export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
 
  
#export PATH=$PATH:/usr/local/gobin
+
# cat key.txt
 +
infnce:wonderfulCache
 +
ext_info
  
source /etc/profile
 
  
  
#export PATH=/usr/local/go/bin/:$PATH
 
#export GOPATH=/root
 
  
 +
#原来的版本
  
#以前的文章
+
del hello_user_*
#freebsd
 
https://dl.google.com/go/go1.12.5.freebsd-amd64.tar.gz
 
#linux
 
curl -o  go1.13.6.linux-amd64.tar.gz  https://dl.google.com/go/go1.13.6.linux-amd64.tar.gz
 
  
 +
redis-cli keys
  
tar -C /usr/local -xzf go1.12.5.freebsd-amd64.tar.gz
 
  
 +
redis-cli keys "hello_user_*" | xargs redis-cli del
  
  
export PATH=$PATH:/usr/local/go/bin
+
./redis-cli -h IP -p PORT -a PASSWORD keys 'key*' | xargs  ./redis-cli -h IP  -p PORT -a PASSWORD del
  
source /etc/profile #如果修改的是/etc/profile
+
redis-cli    -c -h    172.31.22.218   -p 7000  -a pass keys 'hello_user_*'| xargs -i redis-cli    -c  -h    172.31.22.218  -p 7000  -a pass  del {}
source $HOME/.profile   #如果修改的是$HOME/.profile
 
  
go version
+
redis-cli    -c  -h    172.31.22.218  -p 7001  -a pass keys 'hello_user_*'| xargs -i redis-cli    -c  -h    172.31.22.218  -p 7001  -a pass  del {}
  
  
 +
redis-cli    -c  -h    172.31.16.135  -p 7002  -a pass keys 'hello_user_*'| xargs -i  redis-cli    -c  -h    172.31.16.135  -p 7002 -a pass  del {}
  
</pre>
+
redis-cli    -c  -h    172.31.16.135  -p 7003  -a pass keys 'hello_user_*'| xargs  -i redis-cli    -c  -h    172.31.16.135  -p 7003 -a pass  del {}
  
  
=ubuntu=
+
redis-cli    --h    172.31.23.43  -p 7004  -a pass keys 'hello_user_*'| xargs -i  redis-cli    -c  -h    172.31.23.43  -p 7004 -a pass  del {}
<pre>
 
sudo add-apt-repository ppa:longsleep/golang-backports
 
sudo apt update
 
sudo apt install golang-go
 
  
</pre>
+
redis-cli    -c  -h    172.31.23.43  -p 7005  -a pass keys 'hello_user_*'| xargs -i  redis-cli    -c  -h    172.31.23.43  -p 7005 -a pass  del {}
https://github.com/golang/go/wiki/Ubuntu
 
=IDE=
 
  
==goland==
 
进入goland的bin目录下执行./goland.sh
 
  
Goland常用快捷键
 
文件相关快捷键:
 
 
CTRL+E,打开最近浏览过的文件。
 
CTRL+SHIFT+E,打开最近更改的文件。
 
CTRL+N,可以快速打开struct结构体。
 
CTRL+SHIFT+N,可以快速打开文件。
 
代码格式化:
 
 
CTRL+ALT+T,可以把代码包在一个块内,例如if{…}else{…}。
 
CTRL+ALT+L,格式化代码。
 
CTRL+空格,代码提示。
 
CTRL+/,单行注释。CTRL+SHIFT+/,进行多行注释。
 
CTRL+B,快速打开光标处的结构体或方法(跳转到定义处)。
 
CTRL+“+/-”,可以将当前方法进行展开或折叠。
 
查找和定位
 
CTRL+R,替换文本。
 
CTRL+F,查找文本。
 
CTRL+SHIFT+F,进行全局查找。
 
CTRL+G,快速定位到某行。
 
代码编辑
 
 
ALT+Q,可以看到当前方法的声明。
 
CTRL+Backspace,按单词进行删除。
 
SHIFT+ENTER,可以向下插入新行,即使光标在当前行的中间。
 
CTRL+X,删除当前光标所在行。
 
CTRL+D,复制当前光标所在行。
 
ALT+SHIFT+UP/DOWN,可以将光标所在行的代码上下移动。
 
CTRL+SHIFT+U,可以将选中内容进行大小写转化。
 
  
===linux下Goland如何设置桌面快捷方式 ===
 
<pre>
 
ln -s  /opt/goland/bin/goland.sh /usr/bin/goland #我是这种在 awesome有效
 
  
  
goland打开后点击任务栏:
+
#!/bin/bash
 +
redis_comm=/usr/local/redis-5.0.3/bin/redis-cli
 +
redis_ser01=192.168.50.175
 +
redis_ser02=192.168.50.174
 +
$redis_comm -c -h $redis_ser01  -p 7001 -a xxx  keys $1 | xargs -i $redis_comm -c -h $redis_ser01  -p 7001 -a xxx del {}
 +
$redis_comm -c -h $redis_ser02  -p 7001 -a xxx  keys $1 | xargs -i $redis_comm -c -h $redis_ser02  -p 7001 -a xxx del {}
  
tools---->create desktop entry.
+
运行:
  
 +
./redis_del_key.sh  匹配的key*
  
#我的这个应该是没效果的
+
err 
cat /usr/share/applications/goland.desktop
 
Version=1.0
 
Type=Application
 
Name=GoLand
 
Icon=/opt/goland/bin/goland.png
 
Exec="/opt/goland/bin/goland.sh" %f
 
Comment=The Drive to Develop
 
Categories=Development;IDE;
 
Terminal=false
 
StartupWMClass=jetbrains-goland
 
</pre>
 
  
[https://zhuanlan.zhihu.com/p/63248860 GO教程:安装Goland开发工具]
+
-i  {} 都是一定要的
  
[https://www.cnblogs.com/zhangguosheng1121/p/11448194.html  go安装与goland破解永久版]
+
redis-cli -n 0 keys "test*" | xargs redis-cli -n 0 del
 
+
(error) CROSSSLOT Keys in request don't hash to the same slot
==emacs==
 
https://stackoverflow.com/questions/1715464/emacs-mode-for-go#1715502
 
 
 
https://www.emacswiki.org/emacs/GoLangMode
 
 
 
[https://www.cnblogs.com/wang_yb/p/4923168.html  Emacs中多个golang项目的配置方法 ]
 
 
 
 
 
https://www.cnblogs.com/lienhua34/p/5838166.html
 
 
 
https://github.com/lienhua34/myemacs-conf
 
 
 
https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Blang/go
 
 
 
https://blog.yuantops.com/tech/emacs-config-go-dev-environ/
 
 
 
https://dreamerjonson.com/2019/11/24/emacs-package-for-golang/index.html
 
 
 
 
 
 
 
 
 
https://zhuanlan.zhihu.com/p/19902040
 
 
 
https://github.com/lryong/emacs-golang-conf
 
 
 
https://chenyangguang.github.io/2018-11-27-ide/
 
  
 +
</pre>
 
=see also=
 
=see also=
https://golang.google.cn/doc/install#install
+
[https://my.oschina.net/u/1255588/blog/1563672 Redis集群批量删除key]
  
[[category:go]]
+
https://blog.csdn.net/qq_36090419/article/details/80537684

2020年6月22日 (一) 08:05的版本

redis cluster 批量删除key

#June 19 2020   有空结果一下原来的版本再优化一下 
cat redis_del_key.sh
#!/bin/bash
# Usage 
#redis_list=("host:post" "host:post")

redis_list=( "172.16.200.12:7003" "172.16.200.7:7004" "172.16.200.7:7005" "172.16.200.13:7000" "172.16.200.13:7001" "172.16.200.12:7002")
#redis_list=( "172.16.200.13:7000" "172.16.200.13:7001" "172.16.200.12:7002")
#redis_list=("172.16.200.7:7004")
password="3636password"

for info in ${redis_list[@]}
    do
        echo "开始执行:$info"  
        ip=`echo $info | cut -d : -f 1`
        port=`echo $info | cut -d : -f 2`

      for  loop in  `cat key.txt`
         do
         #echo $loop  |xargs -t -n1 redis-cli -c  -h $ip -p $port -a $password -c del
         echo $loop  |xargs -t -n1 redis-cli -c  -h $ip -p $port -a $password -c keys 
         done

    done
    echo "完成"



# cat key.txt 
infnce:wonderfulCache
ext_info




#原来的版本

del hello_user_* 

redis-cli keys


 redis-cli keys "hello_user_*" | xargs redis-cli del


./redis-cli -h IP -p PORT -a PASSWORD keys 'key*' | xargs  ./redis-cli -h IP  -p PORT -a PASSWORD del

redis-cli    -c  -h    172.31.22.218   -p 7000  -a pass keys 'hello_user_*'| xargs -i redis-cli    -c  -h    172.31.22.218   -p 7000  -a pass  del {}

redis-cli    -c  -h    172.31.22.218   -p 7001  -a pass keys 'hello_user_*'| xargs -i redis-cli    -c  -h    172.31.22.218   -p 7001  -a pass  del {}


redis-cli    -c  -h    172.31.16.135  -p 7002  -a pass keys 'hello_user_*'| xargs -i  redis-cli    -c  -h    172.31.16.135   -p 7002 -a pass  del {}

redis-cli    -c  -h    172.31.16.135  -p 7003  -a pass keys 'hello_user_*'| xargs  -i redis-cli    -c  -h    172.31.16.135   -p 7003 -a pass  del {}


redis-cli    -c  -h     172.31.23.43   -p 7004  -a pass keys 'hello_user_*'| xargs -i  redis-cli    -c  -h    172.31.23.43   -p 7004 -a pass  del {}

redis-cli    -c  -h     172.31.23.43   -p 7005  -a pass keys 'hello_user_*'| xargs -i  redis-cli    -c  -h    172.31.23.43   -p 7005 -a pass  del {}





#!/bin/bash
redis_comm=/usr/local/redis-5.0.3/bin/redis-cli
redis_ser01=192.168.50.175
redis_ser02=192.168.50.174
$redis_comm -c -h $redis_ser01  -p 7001 -a xxx  keys $1 | xargs -i $redis_comm -c -h $redis_ser01  -p 7001 -a xxx del {}
$redis_comm -c -h $redis_ser02  -p 7001 -a xxx  keys $1 | xargs -i $redis_comm -c -h $redis_ser02  -p 7001 -a xxx del {}

运行:

./redis_del_key.sh  匹配的key*

err  

-i  {} 都是一定要的 

redis-cli -n 0 keys "test*" | xargs redis-cli -n 0 del
(error) CROSSSLOT Keys in request don't hash to the same slot

see also

Redis集群批量删除key

https://blog.csdn.net/qq_36090419/article/details/80537684