redis内存相关操作
# 查看redis内存相关信息
> info memory
#查看bgsave等持久化进程状态
>info Persistence
# 查看redis实例最大内存限制
>config get maxmemory
# 设置redis实例最大内存限制1gb
>config set maxmemory 1073741824
redis集群状态检测&修复&均衡
#添加主节点
# redis-cli_v5 --no-auth-warning --cluster add-node neednode_host:neednode_port access_host:access_port -a xxxxxxxx
#添从节点
# redis-cli_v5 --cluster add-node -a xxxxxxxx --cluster-slave neednode_host:neednode_port access_host:access_port --cluster-master-id point_master_nodeid
#删除节点
# redis-cli_v5 --cluster del-node access_host:access_port todel_nodeid -a xxxxxx
#提升集群从节点为主节点
# redis-cli -h slavehost -p slaveport -a xxxxxx cluster failover takeover
#切换集群当前从节点到新的主节点下
# redis-cli -h slave_host -p slave_port -a xxxxxx cluster replicate newmaster_nodeid
#检测集群状态
# redis-cli -a xxxxxx --cluster check host:port
#修复集群状态
# redis-cli -a xxxxxx --cluster fix host:port
#手动均衡集群slot
# nohup redis-cli_v5 --cluster rebalance --cluster-threshold 1 host:port -a xxxxxx --cluster-timeout 1200000 --cluster-use-empty-masters &
# 修改集群节点密码
redis-cli -h slave_host -p slave_port -a old_password config SET requirepass new_password
redis-cli -h slave_host -p slave_port -a new_password config SET masterauth new_password
#
redis-cli -h master_host -p master_port -a old_password config SET requirepass new_password
redis-cli -h master_host -p master_port -a new_password config SET masterauth new_password
redis主从
#查看主从关系状态
redis-cli -h host -p port -a xxxx info replication
#强制 指定当前从节点 与对应主节点建立主从关系
> SLAVEOF master_host master port
redis内存碎片回收策略
#查看内存碎片自动回收策略
> config get activedefrag
#关闭内存碎片自动回收
> config set activedefrag no
redis同步迁移参数
#查看rdbchecksum参数值
> config get rdbchecksum
1) "rdbchecksum"
2) "no"
#开启rdbchecksum,确保支持增量同步
> kae-config set rdbchecksum yes
#查看redis主从同步回环缓存区大小/ 128M
> config get repl-backlog-size
1) "repl-backlog-size"
2) "134217728"
#调大repl-backlog-size /512M
> config set repl-backlog-size 536870912
# 调整主从同步超时时间
> config set repl-timeout 300
清空数据&回收实例
#异步方式清空当前db,非阻塞
> flushdb async
#异步非阻塞删除key(线上推荐)
> unlink keyname
#过滤查询前缀aaa的key
> SCAN 0 match 'aaa*' count 10
#scan查询前缀aaa的key,并逐个删除
# redis-cli -h 172.16.61.1 -p 7000 -c --scan --pattern "aaa*"| xargs -L 1 sh -c 'echo Deleting key: $0; redis-cli -h 172.16.61.1 -p 7000 -c -n 0 del $0 '
#查看有无业务客户端连接
# redis-cli -h host -p slave -a xxxx client list|awk '{print $2}' |awk -F'[=|:]' '{print $2}'|sort|uniq -c
redis宿主机nf_conntrack模块丢包
###方案1 临时扩大参数限制###
#查看nf_conntrack_max限制
#sysctl -a|grep net.nf_conntrack_max
#调整限制
#sysctl -w net.nf_conntrack_max=524288
#查看nf_conntrack模块使用情况
lsmod |grep nf_conntrack
###方案2 去掉相关内核模块###
#移除nf_conntrack模块
sudo rmmod iptable_nat
sudo rmmod ip6table_nat
sudo rmmod nf_defrag_ipv4
sudo rmmod nf_defrag_ipv6
sudo rmmod nf_nat
sudo rmmod nf_nat_ipv4
sudo rmmod nf_nat_ipv6
sudo rmmod nf_conntrack
sudo rmmod nf_conntrack_ipv4
sudo rmmod nf_conntrack_ipv6
sudo rmmod xt_conntrack