文章标题
2016-07-11 20:17
615 查看
写了一个 redis 数据清理的模块,是 sdb-schedule 的插件。
可在这里进行下载 download。
- 支持 正则表达式
- 支持 ZSET,LIST 的清理
- host, redis服务器的IP;
- port, redis服务器的端口号;
name,清理操作描述信息
type,清理类型
zset,清理 ZSET 数据
list,清理 LIST 数据
key,清理redis key,通过设置超期值来实现
match,查找匹配的redis键,参照 redis keys 的语法。
action,操作
style,操作的方式,支持 ( rank|score|rem|trim )。
rank,type为 ZSET 时有效,对应调用 zremrangebyrank 实现数据的清理
score,type为 ZSET 时有效,对应调用 zremrangebyscore 实现数据的清理
rem,type为 LIST 时有效,对应调用 lrem 实现数据的清理
trim,type为 LIST 时有效,对应调用 ltrim 实现数据的清理
min,js表达式,移除范围低值,用于 ZSET 和 LIST 的 trim
max,js表达式,移除范围高值,用于 ZSET 和 LIST 的 trim
count,js表达式,移除数量,用于 LIST 的 rem
value,js表达式,移除数值,用于 LIST 的 rem
expire, 数字,单位秒, type为key时有效,设置 key 的超期值
regex, 键的匹配正则表达式,支持子匹配,子匹配的匹配判断参数在 下面的 attr里面设置
attr, 子匹配属性
matchType,匹配类型,支持整形(int),字符串(string),时间戳(dateStamp)
min,匹配范围低值
max,匹配范围高值,对 string类型无效
下面是配置的详细例子
Licensed under the [MIT License].
Redis 数据清理
本模块是 sdb-schedule 的插件,用于自动清理 redis 数据。 sdb-schedule 也提供了APP sdb-schedule-ui,进行图形化操作。可在这里进行下载 download。
- 支持 正则表达式
- 支持 ZSET,LIST 的清理
安装
step 1: install module
Using npm:$ npm install scp-cleanRedis
step 2: config in sdb-schedule
添加 Job,设置 Fun 参数为 “scp-cleanRedis”.更新记录
0.0.2
修复只能清理一次的Bug。0.0.1
实现功能。配置
配置文件采用json格式,定义了每个匹配,结构大致如下:{ "redis":{ "host":"127.0.0.1","port":6379 }, "keys":[ { "name":"<descript info>", "type":"<zset|list|key>", "match":"<redis keys synctax>", "action":{ "style" : "<rank|score|rem|trim>", // rank|score for ZSET;rem|trim for LIST "min" : "<js expression>", "max" : "<js expression>", "count" : "<js expression>", // optional ,FOR LIST rem "value" : "<js expression>", // optional ,FOR LIST rem "expire":36000, // optional, for key type "regex":"<regex>", "attr":[ { "matchType":"<int|string|dateStamp>", "min" : "<val0 | js expression>", "max" : "[val0 | js expression]" } ] } } ] };
redis
配置操作的redis数据库的地址- host, redis服务器的IP;
- port, redis服务器的端口号;
keys
数组,清理的redis键的配置。name,清理操作描述信息
type,清理类型
zset,清理 ZSET 数据
list,清理 LIST 数据
key,清理redis key,通过设置超期值来实现
match,查找匹配的redis键,参照 redis keys 的语法。
action,操作
style,操作的方式,支持 ( rank|score|rem|trim )。
rank,type为 ZSET 时有效,对应调用 zremrangebyrank 实现数据的清理
score,type为 ZSET 时有效,对应调用 zremrangebyscore 实现数据的清理
rem,type为 LIST 时有效,对应调用 lrem 实现数据的清理
trim,type为 LIST 时有效,对应调用 ltrim 实现数据的清理
min,js表达式,移除范围低值,用于 ZSET 和 LIST 的 trim
max,js表达式,移除范围高值,用于 ZSET 和 LIST 的 trim
count,js表达式,移除数量,用于 LIST 的 rem
value,js表达式,移除数值,用于 LIST 的 rem
expire, 数字,单位秒, type为key时有效,设置 key 的超期值
regex, 键的匹配正则表达式,支持子匹配,子匹配的匹配判断参数在 下面的 attr里面设置
attr, 子匹配属性
matchType,匹配类型,支持整形(int),字符串(string),时间戳(dateStamp)
min,匹配范围低值
max,匹配范围高值,对 string类型无效
下面是配置的详细例子
{ "redis":{ "host":"127.0.0.1","port":6379 }, "keys":[ { "name":"清理zset类型", "type":"zset", "match":"*:Pool:his", "action":{ "style" : "score", "min" : "'-inf'", "max" : "parseInt((new Date()).valueOf()/1000) - 86400 * 30", "regex":"([0-9]{8}):*", "attr":[ { "matchType":"string", "min" : "50901800", "max" : "" } ] } }, { "name":"清理 List", "type":"list", "match":"brnn:winls", "action":{ "style":"trim", "min" : 0, "max" : 3 } }, { "name":"清理key", "type":"key", "match":"rcard:20??????:*:*", "action":{ "expire":36000, "regex":"([0-9]{8}):([0-9]{1,}):([0-9]{1,})", "attr":[ { "matchType":"dateStamp", "min" : "0", "max" : "(new Date()).valueOf() - 86400 * 30000" }, { "matchType":"int", "min" : "0", "max" : "3" }, { "matchType":"string", "min" : "5", "max" : "" } ] } } ] };
Copyright and license
Copyright 2016+ shudingboLicensed under the [MIT License].
相关文章推荐
- redis安装问题小结
- msql 正则表达式
- 正则表达式
- 使用 Redis 和 Python 构建一个共享单车的应用程序
- Redis偶发连接失败案例实战记录
- Mootools 1.2教程 正则表达式
- Redis中实现查找某个值的范围
- win 7 安装redis服务【笔记】
- redis的hGetAll函数的性能问题(记Redis那坑人的HGETALL)
- Redis和Memcached的区别详解
- Redis02 使用Redis数据库(String类型)全面解析
- 分割超大Redis数据库例子
- Redis总结笔记(一):安装和常用命令
- Redis sort 排序命令详解
- 用Redis实现微博关注关系
- Redis实现信息已读未读状态提示
- 批处理FINDSTR正则表达式用法实例分析
- redis中修改配置文件中的端口号 密码方法
- 在Ruby on Rails上使用Redis Store的方法