redis安全删key脚本

需求:

删除指定前缀开头的rediskey ,扫描和删除过程中对线上无感知

只要知道线上操作的时候我们要用scan来代替 keys ,这一点就行了,简单脚本如下:

del.sh

 1 #!/bin/bash
 2
 3 for((i = 1; i <= 50000; i++))
 4 do
 5     b=$[ $i * 100 ]
 6     echo $b
 7         redis-cli -h test.m.cnhza.kvstore.aliyuncs.com -a test:Paasword scan $b  match cache:info_*  count 100 |xargs -i redis-cli -h test.m.cnhza.kvstore.aliyuncs.com -a test:Paasword  del {}
 8         redis-cli -h test.m.cnhza.kvstore.aliyuncs.com -a test:Paasword scan $b  match cache:userb*  count 100 |xargs -i redis-cli -h test.m.cnhza.kvstore.aliyuncs.com -a test:Paasword  del {}
 9         redis-cli -h test.m.cnhza.kvstore.aliyuncs.com -a test:Paasword scan $b  match cache:userc*  count 100 |xargs -i redis-cli -h test.m.cnhza.kvstore.aliyuncs.com -a test:Paasword  del {}
10 done

执行:

sh del.sh >>echo.log &

watch wc -l echo.log

这样就可以了,因为常用,记录一下。

时间: 2024-10-15 06:00:40

redis安全删key脚本的相关文章

redis 批量删除key脚本

只支持keys* 通配版本 #!/bin/bash redis_comm=/usr/local/redis-5.0.3/bin/redis-cli redis_ser01=192.168.50.175 redis_ser02=192.168.50.174 $redis_comm -c -h $redis_ser01 -p 7001 -a xxx keys $1 | xargs -i $redis_comm -c -h $redis_ser01 -p 7001 -a xxx del {} $red

redis中使用java脚本实现分布式锁

转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/115.html?1455860390 edis被大量用在分布式的环境中,自然而然分布式环境下的锁如何解决,立马成为一个问题.例如我们当前的手游项目,服务器端是按业务模块划分服务器的,有应用服,战斗服等,但是这两个vm都有可能同时改变玩家的属性,这如果在同一个vm下面,就很容易加锁,但如果在分布式环境下就没那么容易了,当然利用redis现有的功能也有解决办法,比如redis

redis翻译_redis lua脚本

Available since 2.6.0.  加入版本2.6 Time complexity: Depends on the script that is executed. 时间复杂度: 取决于脚本的执行 出处:http://blog.csdn.net/column/details/redisbanli.html Introduction to EVAL  介绍EVAL EVAL and EVALSHA are used to evaluate scripts using the Lua i

如何在linux平台上安装redis(附自动安装脚本)

1.Redis的简单介绍 Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集合和有序集合.支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能.所以Redis也可以被看成是一个数据结构服务器. Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这被称为"半持久化模式");也可以把每一次数据变化都写到一个append onlyfile(aof)里

在redis中使用lua脚本

在实际工作过程中,可以使用lua脚本来解决一些需要保证原子性的问题,而且lua脚本可以缓存在redis服务器上,势必会增加性能. 不过lua也会有很多限制,在使用的时候要注意. 在Redis中执行Lua脚本有两种方法:eval和evalsha eval EVAL script numkeys key [key ...] arg [arg ...] 其中: <1> script:你的lua脚本 <2> numkeys:  key的个数 <3> key:redis中各种数据

python redis客户端使用lua脚本

有一个需求,为一个key设置一个field存储时间戳,每当有新数据,判断新数据时间戳是否>之前的时间戳,如果是,更新时间戳,由于依赖中间执行结果,所以使用lua减少客户端和服务端通信次数 #!/usr/bin/python # -*- coding: utf-8 -*- import redis r = redis.Redis("127.0.0.1") lua = """ local key = KEYS[1] local field = ARGV[

一个简单的监控redis性能的python脚本

一个简单的监控redis性能的python脚本 上一篇已经讲了如何监控memcached了,现在也顺带讲如何监控redis. 首先介绍下监控redis那些信息: Redis ping:检验ping Redis alive:查看检查端口是否alive Redis connections:查看连接数 Redis blockedClients:正在等待阻塞客户端数量 Redis connectionsUsage:redis的连接使用率 Redis memoryUsage:redis内存使用量 Redi

又一次redis被删库跑路,索要0.6比特币

还在和媳妇儿逛街,突然同事打来电话说redis库被清空. 于是,媳妇儿说你真是乌鸦嘴,早上还说redis如何被提权的事情. 怎么刚出来就碰上了? 会不会是你搞的? 于是无形中又背锅了. 见×××姐如此着急,边安慰,边提醒让同事查一下,是什么时候发生的事情,受害面积有多大? 但是×××姐很镇静的说,不可以啊,我们ucloud云商上的redis的机器,是禁止外网登录的,所有外网的6379端口都被禁用了. 仅限本机登录,于是,我问你有加密码嘛?×××姐说,便于程序研发效率,内网环境,自然就没有加密码.

单点登录filter根据redis中的key判断是否退出

package com.ailk.biapp.ci.localization.cntv.filter; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; imp