页面“Fstab文件功能详解”与“Redis批量删除key”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
(导入1个版本)
 
 
第1行: 第1行:
 +
[[category:ops]] [[category:redis]] 
 +
 +
[[Redis-bigkeys]]
 +
=redis cluster 批量删除key=
 
<pre>
 
<pre>
# <file system> <mount point>   <type>  <options>      <dump>  <pass>
+
#June 19 2020   有空结果一下原来的版本再优化一下
# / was on /dev/sda1 during installation
+
cat redis_del_key.sh
UUID=94f2971d-2627-4211-884d-256f366ee8fc /               ext4    errors=remount-ro 0      1
+
#!/bin/bash
# /home was on /dev/sda6 during installation
+
# Usage
UUID=e6e7e93e-31b2-4ba9-978c-791d2b97e86b /home          ext4    defaults        0      2
+
#redis_list=("host:post" "host:post")
# swap was on /dev/sda5 during installation
 
UUID=534a42e1-c6a4-4db3-af11-d1548ecb5818 none            swap    sw              0      0
 
  
#mydata 2T hdd
+
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")
/dev/sdb1  /home/evan/data    ext4    defaults        0      0
+
#redis_list=( "172.16.200.13:7000" "172.16.200.13:7001" "172.16.200.12:7002")
#UUID=d0544c53-5ad7-4492-8398-a5bfe6bbd6c6  /home/evan/data    ext4    defaults        0      0
+
#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`
  
第一列:Device:磁盘设备文件或者该设备的Label或者UUID
+
      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
  
  1)查看分区的label和uuid
+
    done
 +
    echo "success done完成"
  
    Label就是分区的标签,在最初安装系统时填写的挂载点就是标签的名字。可以通过查看一个分区的superblock中的信息找到UUID和Label name。
+
# cat key.txt
 +
infnce:wonderfulCache
 +
ext_info
  
    例如:我们要查看/dev/sda1这个设备的uuid和label name
 
2)使用设备名和label及uuid作为标识的不同
 
  
            使用设备名称(/dev/sda)来挂载分区时是被固定死的,一旦磁盘的插槽顺序发生了变化,就会出现名称不对应的问题。因为这个名称是会改变的。
 
  
不过使用label挂载就不用担心插槽顺序方面的问题。不过要随时注意你的Label name。至于UUID,每个分区被格式化以后都会有一个UUID作为唯一的标识号。使用uuid挂载的话就不用担心会发生错乱的问题了。
+
#原来的版本
  
第二列:Mount point:设备的挂载点,就是你要挂载到哪个目录下。
+
del hello_user_*
  
+
redis-cli keys
  
第三列:filesystem:磁盘文件系统的格式,包括ext2、ext3、reiserfs、nfs、vfat等
 
  
   
+
  redis-cli keys "hello_user_*" | xargs redis-cli del
  
第四列:parameters:文件系统的参数
 
  
Async/sync
+
./redis-cli -h IP -p PORT -a PASSWORD keys 'key*' | xargs  ./redis-cli -h IP  -p PORT -a PASSWORD del
  
设置是否为同步方式运行,默认为async
+
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 {}
  
auto/noauto
+
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 {}
  
  当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto
+
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 {}
  
rw/ro       
 
  
是否以以只读或者读写模式挂载
 
  
exec/noexec       
+
#!/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 {}
  
限制此文件系统内是否能够进行"执行"的操作
+
运行:
  
user/nouser
+
./redis_del_key.sh  匹配的key*
  
是否允许用户使用mount命令挂载
+
err 
  
suid/nosuid
+
-i  {} 都是一定要的
  
是否允许SUID的存在
+
redis-cli -n 0 keys "test*" | xargs redis-cli -n 0 del
 +
(error) CROSSSLOT Keys in request don't hash to the same slot
  
Usrquota
+
</pre>
  
启动文件系统支持磁盘配额模式
+
=see also=
 
 
Grpquota
 
 
 
启动文件系统对群组磁盘配额模式的支持
 
 
 
Defaults
 
 
 
同事具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置
 
 
 
 
 
 
第五列:能否被dump备份命令作用:dump是一个用来作为备份的命令。通常这个参数的值为0或者1
 
 
 
        0
 
  
代表不要做dump备份
 
  
        1
+
[https://blog.csdn.net/yangyangye/article/details/100523387  redis集群批量删除模糊key shell脚本]
  
代表要每天进行dump的操作
+
[https://www.cnblogs.com/feng0520/p/11067025.html  redis cluster集群批量删除中的key]
  
        2
+
[https://my.oschina.net/u/1255588/blog/1563672 Redis集群批量删除key]
  
代表不定日期的进行dump操作
+
[https://blog.csdn.net/zj20142213/article/details/80879744  redis集群批量删除指定的key]
  
+
https://blog.csdn.net/qq_36090419/article/details/80537684
 
 
第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。
 
 
 
0
 
 
 
不要检验
 
 
 
1
 
 
 
最早检验(一般根目录会选择)
 
 
 
2
 
 
 
1级别检验完成之后进行检验
 
 
 
 
 
 
 
 
</pre>
 
 
 
=see also=
 
[http://www.cnblogs.com/qiyebao/p/4484047.html Linux命令-自动挂载文件/etc/fstab功能详解]
 
[[category:ops]] [[category:linux]]
 

2020年6月22日 (一) 11:37的版本


Redis-bigkeys

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 "success done完成"

# 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 shell脚本

redis cluster集群批量删除中的key

Redis集群批量删除key

redis集群批量删除指定的key

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