OS Shell下批量操作Redis

1
2
3
4
5
6
7
# 批量删除库中的某些Key
./redis-cli -h ip -p 1001 -a xxx keys ip_* |xargs ./redis-cli -h ip -p 1001 -a xxx del
./redis-cli -h ip -p 1001 -a xxx keys "*ip_*"|xargs ./redis-cli -h ip -p 1001 -a xxx del
./redis-cli -h ip -p 1001 -a xxx keys "*ip_*"|xargs -r -t -n1 ./redis-cli -h ip -p 1001 -a xxx del

# key 如果带空格,需要用这里的语句才能批量删除
./redis-cli -h ip -p 1001 -a xxx keys "*ip_*"|xargs -I {} ./redis-cli -h ip -p 1001 -a xxx del "{}"

Redis Lua脚本批量删除

1
2
3
4
5
6
7
8
-- 第一种key太多可能删除不了,第二种可以循环大量处理
eval "return redis.call('del', unpack(redis.call('keys', ARGV[1])))" 0 "*ip_*"
eval "for _,k in ipairs(redis.call('keys','*ip_*')) do redis.call('del',k) end" 0

-- 脚本展开如下
for _, k in ipairs(redis.call('keys', '*ip_*')) do
    redis.call('del', k)
end

Sentinel查询

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 在一台装有哨兵的服务器,登录到哨兵控制台界面,用下列命令查询

# 查询某个Redis库,当前所记录的哨兵状态
127.0.0.1:26300> sentinel sentinels Rxxxxx
# 查询当前哨兵监控中的所有主库
127.0.0.1:26300> sentinel masters
# 查询当前哨兵监控中指定实例的所有从库
127.0.0.1:26300> sentinel slaves Rxxxxx
# 查询指定实例主库的IP地址、端口号等信息
127.0.0.1:26300> sentinel get-master-addr-by-name Rxxxxx

(完)