Redis是一个开源、内存数据库,很多场景都可以使用它来保存和存取集合、列表、哈希表等数据结构,保存的数据支持秒级查询和更新操作。但是有时候,当Redis中出现不必要的key时,清除redis就变得尤为必要了。
一般来说,清除Redis有两种基本的方式,一种是bash命令行来实现,另一种是通过Redis自身提供的API来实现Redis一键清空所有key。
首先介绍bash命令行清除key的方式,先通过如下命令获取Redis中所有的key:

keys *
然后复制获取的Redis key到一个文件中,比如叫keys.txt,内容如下:
Key1Key2Key3
再通过以下文件来批量清除Redis中key:
while read line; do redis-cli DEL $linedone
这种方法清除key比较繁琐,下面介绍一个简单的方式,即通过Redis的API来实现一键清空Redis中所有key,清除Redis key只需要执行以下命令即可:
redis-cli FLUSHALL
执行后会返回OK,表示清除成功。这里需要注意的是,FLUSHALL命令会将Redis中所有的key一并清除,所以一般情况下不推荐使用,只有在极端情况下,清除所有key是最后的选择时才会考虑这种方案。
Redis一键清空所有key就介绍到这里,相信在遇到某些场景需要清空Redis temp对象的时候,大家已经有一定的思路去实现了,当然,也可以选择更加灵活方便的脚本来实现,比如下面一个清除Redis key场景的脚本:
#!/bin/bash#清除Redis中所有不同类型下面所有key#Redis 的连接地址REDIS_HOST=127.0.0.1REDIS_PORT=6379#列出key类型key_types=(string list hash set zset)#遍历所有类型for key_type in ${key_types[*]}; do #根据类型列出所有key keys=`echo -en "KEYS *\r\n" | redis-cli -h ${REDIS_HOST} -p ${REDIS_PORT} -t ${key_type} | tr "\r\n" " "` #根据key进行批量清除 if [ -z "$keys" ];thencontinue fi echo -en "DEL $keys\r\n" | redis-cli -h ${REDIS_HOST} -p ${REDIS_PORT} -t ${key_type} > /dev/nulldone
要清除Redis key,不管是bash命令行还是Redis API,都是可行的,但还是要谨慎使用,需要根据自身具体的业务场景,结合Redis的操作方式,来有选择性的进行key的清除。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
如何通过正则匹配删除Redis里的键
批删: redis-cli keys * | xargs redis-cli del
灰鸽子远程控制什么用
灰鸽子的运行原理灰鸽子木马分两部分:客户端和服务端。 黑客(姑且这么称呼吧)操纵着客户端,利用客户端配置生成一个服务端程序。 服务端文件的名字默认为G_,然后黑客通过各种渠道传播这个木马(俗称种木马或者开后门)。 种木马的手段有很多,比如,黑客可以将它与一张图片绑定,然后假冒成一个羞涩的MM通过QQ把木马传给你,诱骗你运行;也可以建立一个个人网页,诱骗你点击,利用IE漏洞把木马下载到你的机器上并运行;还可以将文件上传到某个软件下载站点,冒充成一个有趣的软件诱骗用户下载……由于灰鸽子病毒变种繁多,其文件名也很多变,近来发现的以()类型居多,不易对付,在被感染的系统%Windows%目录下生成三个病毒文件,分别是 G_,G_,G_Server_。 G_运行后将自己拷贝到Windows目录下(98/xp下为系统盘的windows目录,2k/NT下为系统盘的Winnt目录),然后再从体内释放G_和G_Server_到windows目录下。 G_、G_和G_Server_三个文件相互配合组成了灰鸽子服务端,有些灰鸽子会多释放出一个名为G_的文件用来记录键盘操作。 同时注意,G_这个名称并不固定,它是可以定制的,比如当定制服务端文件名为时,生成的文件就是、和A_。 Windows目录下的G_文件将自己注册成服务(9X系统写注册表启动项),每次开机都能自动运行,运行后启动G_和G_Server_并自动退出。 G_文件实现后门功能,与控制端客户端进行通信;G_Server_则通过拦截API调用来隐藏病毒。 因此,中毒后,我们看不到病毒文件,也看不到病毒注册的服务项。 随着灰鸽子服务端文件的设置不同,G_Server_有时候附在的进程空间中,有时候则是附在所有进程中。 灰鸽子病毒其特点是“三个隐藏”——隐藏进程、隐藏服务、隐藏病毒文件灰鸽子的手工检测由于灰鸽子拦截了API调用,在正常模式下木马程序文件和它注册的服务项均被隐藏,也就是说你即使设置了“显示所有隐藏文件”也看不到它们。 此外,灰鸽子服务端的文件名也是可以自定义的,这都给手工检测带来了一定的困难。 但是,通过仔细观察我们发现,对于灰鸽子的检测仍然是有规律可循的。 从上面的运行原理分析可以看出,无论自定义的服务器端文件名是什么,一般都会在操作系统的安装目录下生成一个以“_”结尾的文件。 通过这一点,我们可以较为准确手工检测出灰鸽子木马。 由于正常模式下灰鸽子会隐藏自身,因此检测灰鸽子的操作一定要在安全模式下进行。 进入安全模式的方法是:启动计算机,在系统进入Windows启动画面前,按下F8键,在出现的启动选项菜单中,选择“安全模式”。 1、由于灰鸽子的文件本身具有隐藏属性,因此要设置Windows显示所有文件。 打开“我的电脑”,选择菜单“工具”—》“文件夹选项”,点击“查看”,取消“隐藏受保护的操作系统文件”前的对勾,并在“隐藏文件和文件夹”项中选择“显示所有文件和文件夹”,然后点击“确定”。 2、打开Windows的“搜索文件”,文件名称输入“*_”,搜索位置选择Windows的安装目录(默认98/xp为C:\\windows,2k/NT为C:\\Winnt)。 3、经过搜索,在Windows目录(不包含子目录)下发现了一个名为G_Server_的文件。 4、根据灰鸽子原理分析我们知道,G_Server_是灰鸽子的文件,则在操作系统安装目录下还会有G_和G_文件。 打开Windows目录,果然有这两个文件,同时还有一个用于记录键盘操作的G_文件。 [以上的我试过,但唔知系米我唔识操作,所以根本我都揾唔到,后黎我下咗个WINDOWS木马清道夫,扫描硬盘,咁就揾到晒所有嘅木马文件] 经过这几步操作基本就可以确定这些文件是灰鸽子木马了,下面就可以进行手动清除。 灰鸽子的手工清除经过上面的分析,清除灰鸽子就很容易了。 清除灰鸽子仍然要在安全模式下操作,主要有两步:1、清除灰鸽子的服务;2删除灰鸽子程序文件。 注意:此操作需在安全模式下进行,为防止误操作,清除前一定要做好备份。 一、清除灰鸽子的服务 2000/XP系统:1、打开注册表编辑器(点击“开始”-》“运行”,输入“”,确定。 ),打开 HKEY_LOCAL_MacHINE\\SYSTEM\\CurrentControlSet\\Services 注册表项。 2、点击菜单“编辑”-》“查找”,“查找目标”输入“G_”,点击确定,我们就可以找到灰鸽子的服务项.3、删除整个G_键值所在的服务项。 [呢个都系,可能真系我唔识操作,所以根本就都揾唔到,于是我用咗一个低B嘅方法,就系照住清道夫搜出黎嘅文件名来查找,竟然俾我揾到.呵呵~~`揾唔到果D即系无注册项,所以直接入去文件删除就得了]98/me系统:在9X下,灰鸽子启动项只有一个,因此清除更为简单。 运行注册表编辑器,打开HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run项,立即可以看到名为G_的一项,将G_项删除即可。 二、删除灰鸽子程序文件删除灰鸽子程序文件非常简单,只需要在安全模式下删除Windows目录下的G_、G_、G_server_以及G_文件,然后重新启动计算机。 至此,灰鸽子已经被清除干净。 附:其实现在大部分的杀毒软件还是可以帮助查杀灰鸽子病毒的,本人使用的是瑞星杀毒软件并已经更新至最新版本,在正常模式下,瑞星查杀了除G_文件外的所有文件,其实本人并没有指望瑞星能够全部查杀,但瑞星实际上给我帮了一个大忙,就是帮我确定了所中灰鸽子病毒的类型,我在使用瑞星查杀时查杀了G_、G_server_和G_这三个文件以及由前两个文件释放的附在其他进程下的文件,这就让我确定了剩下的那个文件必然是G_,于是重新启动计算机进入安全模式,首先要设置Windows显示所有文件。 打开“我的电脑”,选择菜单“工具”—》“文件夹选项”,点击“查看”,取消“隐藏受保护的操作系统文件”前的对勾,并在“隐藏文件和文件夹”项中选择“显示所有文件和文件夹”,然后点击“确定”。 然后打开Windows的“搜索文件”,因为确定病毒文件为G_,但同时出于保险起见,在搜索中输入G_server*.*进行搜索,并选择所有分区,在C:\\windows目录下发现了G_,但令我惊讶的是竟然在D盘发现了这个文件的副本,其属性同样的隐藏的,所以建议大家在搜索时搜索所有分区,然后删除即可!
更多详情: 请到确实黑客里面有详细内容 8 3
一般是根据需求来进行设置。
redis通过expire命令来设置key的过期时间。
语法(key, expiration)1. 在小于2.1.3的redis版本里,只能对key设置一次expire。
redis2.1.3和之后的版本里,可以多次对key使用expire命令,更新key的expire time。
2. redis术语里面,把设置了expire time的key 叫做:volatile keys。
意思就是不稳定的key。
3. 如果对key使用set或del命令,那么也会移除expire time。
尤其是set命令,这个在编写程序的时候需要注意一下。
4. redis2.1.3之前的老版本里,如果对volatile keys 做相关写入操作(LPUSH,LSET),和其他一些触发修改value的操作时,redis会删除该key。
也就是说 (key,expiration);(key,field,value);(key) //return nullredis2.1.3之后的版本里面没有这个约束,可以任意修改。
(key,100);(key,expiration);(key)(key)//redis2.2.2 return 101; redis<2.1.3 return 1;5. redis对过期键采用了lazy expiration:在访问key的时候判定key是否过期,如果过期,则进行过期处理。
其次,每秒对volatile keys 进行抽样测试,如果有过期键,那么对所有过期key进行处理。
redis可以设置生效开始的时间吗
发表评论