redis批量删除key,key包含空格,\n

redis没有提供批量删除命令,借助linux的 xargs 命令实现批量删除

key中不带空格

./redis-cli -a admin keys "seer*"|xargs ./redis-cli -a admin del
# 删除所有以 seer开头的key,数据库密码为 admin

如果key中带有空格,比如mybatis二级缓存生成的key,上述命令无法删除。
咨询了我们的运维大佬,提供了一个方案。

key中带空格

./redis-cli -a admin keys "seer*"|xargs -I {} ./redis-cli -a admin del "{}"

如果有兴趣,可以自行搜索下xargs的相关用法

key中带\n

redis 以 \n 为结束符,所以key中带 \n 的无法通过上述方法删除,可以通过脚本实现

# !/usr/bin/env python
# -*- coding: UTF-8 -*-

import sys

import redis

__author__ = 'seer'
__date__ = '2018/8/15 10:34'

'''
 批量删除 redis key  
'''

client = redis.StrictRedis(host='127.0.0.1', password='admin')
is_delete = sys.argv[1]
match = sys.argv[2]
for key in client.scan_iter(match=match):
    print key
    if is_delete.lower() == 'true':
        client.delete(key)
        print '删除成功 %s' % key

batch_delete_redis_key.py true yuyanjia*

keys 命令会造成堵塞,改用scan

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • I. 由于测试项目上线,需要删除redis所有的key来开始新测试。 发现del命令只能一个一个的删除,那不成我又...
    五大RobertWu伍洋阅读 7,305评论 0赞 0
  • 本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概...
    kelgon阅读 61,860评论 23赞 625
  • 很久以后 很久以前,听《十年》,想着陈奕迅怎么那么倒霉,不是失恋就是被抛弃。 很久以后,听《十年》,听到的不再是陈...
    小慕雪阅读 257评论 0赞 2
  • 2018年2月4日上午,中学一组17名校长齐聚城关中学,畅谈四天来的学习体会,展望学校美好的明天。这是一群...
    春学阅读 1,469评论 0赞 0
  • 人说当断不断反受其乱,人说遇事需当机立断。 特别,是感情。 不过这说的容易,但真要做起来,...
    红梅映雪2阅读 566评论 0赞 1

友情链接更多精彩内容