文章标题

写了一个 redis 数据清理的模块,是 sdb-schedule 的插件。

Redis 数据清理

本模块是 sdb-schedule 的插件,用于自动清理 redis 数据。 sdb-schedule 也提供了APP sdb-schedule-ui,进行图形化操作。
可在这里进行下载 download
- 支持 正则表达式
- 支持 ZSET,LIST 的清理

Setting

安装

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 2016+ shudingbo

Licensed under the [MIT License].

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值