1、redis优化缓存过期key

为啥设置了expire过期key,内存没有释放?
  key设置过期时间了,ttl为0后并不会自行删除该key,而是等到下次访问该key发现已过期,才会删除。
  命令keys "*" 会瞬间释放所有过期key,但是有风险。慎行。
  其实缓存是在释放的,只不过是没有那么快,释放的快慢取决于redis.conf中的hz参数默认为5,意思是每秒执行5次删除过期key。所以在redis过期较多的场景可以适当调大。并观察cpu是否升高。
 
解决:
  过期key删除频率,观察cpu内存
  config set hz 20

2、redis数据库迁移

# 第一种方式,将一个库中的Key复制到另一个库中:
#!/bin/bash
 
#redis 源ip
src_ip=192.168.0.1
#redis 源port
src_port=6379
 
#redis 源库
src_db=11
 
#redis 目的ip
dest_ip=192.168.0.1
#redis 目的port
dest_port=6379
 
#redis 目的
dest_db=6
 
#redis 密码
pw=123456
 
#要迁移的key前缀
#key_prefix=com.example.test
 
 
redis-cli -h $src_ip-p $src_port -a $pw -n $src_db keys "*" | while read key
do
    redis-cli-h $src_ip -p $src_port -a $pw -n $src_db --raw dump $key | perl -pe 'chomp ifeof' | redis-cli -h $dest_ip -p $dest_port -a $pw -n $dest_db -x restore $key 0
    echo"migrate key $key"
done

# 第二种方式,复制其中某些Key值迁移:
#!/bin/bash
 
#redis 源ip
src_ip=192.168.0.1
#redis 源port
src_port=6379
 
#redis 源库
src_db=1
 
#redis 目的ip
dest_ip=192.168.0.1
#redis 目的port
dest_port=6379
 
#redis 目的
dest_db=3
 
#redis 密码
pw=123456
 
#要遍历的key
k=(medical_record:idmedical_record_attachment:id patient_family_present:id patient_present:idpatient_disease:id family_disease:id patient_allergy:id history_allergy:id)
 
#要迁移的key前缀
#key_prefix=com.example.test
 
for loop in ${k[*]}
do
    redis-cli-h $src_ip -p $src_port -a $pw -n $src_db --raw dump $loop | perl -pe 'chomp ifeof' | redis-cli -h $dest_ip -p $dest_port -a $pw -n $dest_db -x restore $loop0
    echo"The value is: $loop"
done

3、SSHdebug 模式:

ssh -vvvuser@ip_address

SSHdebug 模式:

4、通过中间主机建立SSH连接

ssh -t reachable_hostssh unreachable_host
5、比较远程和本地文件
ssh user@host cat/path/to/remotefile| diff /path/to/localfile -
6、从某主机的80端口开启到本地主机2001端口的隧道
ssh -N-l 2001:localhost:80somemachine        #现在可以直接在浏览器中输入http://localhost:2001访问这个网站
7、复制SSH密钥到目标主机,开启无密码SSH登陆
ssh-keygen#生成密钥
ssh-copy-iduser@host        #拷贝公钥到远程机
8、加固ssh
sed -i's@PermitRootLogin yes@PermitRootLogin no@' /etc/ssh/sshd_config
sed -i's@PermitEmptyPasswords no@PermitEmptyPasswords yes@' /etc/ssh/sshd_config
sed -i 's@#UseDNSyes@UseDNS no@' /etc/ssh/sshd_config
9、登入对方主机执行过指令后立刻离开的方式
ssh root@192.168.10.131 shutdown -h now
10、登入对方主机执行过指令后,对方主机自己执行
ssh root@192.168.10.131 -f shutdown -h now