TTLRedis集合独立实现TTL功能(redis 集合单独设置)
Redis是一款性能卓越、跨平台的开源的内存数据库,被广泛应用于Web应用程序的后台高速缓存层,也广泛用于消息队列等实时性较高的技术领域。Redis原生支持实现单个key的TTL功能(Time To Live:存活时间),但其所支持得key类型仅限于string、list、hash,而不支持集合类型的TTL功能。
针对集合数据类型,可以使用TTLRedis集合独立实现TTL功能。TTLRedis是基于Redis的插件,提供了具有TTL功能的新的集合类型。它不仅支持集合数据类型的原有操作,而且还支持自定义的TTL处理方式,在集合中可以设定每个key的有效时间,以及TTL失效触发的回调函数,从而可以实现对集合的DDL(数据定义语言)管理。
例如,在运用TTLRedis设置fruits集合数据类型,使其中每个key的有效时间等于1分钟,具体实现方式为:
127.0.0.1:6379> ttlredis.create fruits ttl 60
OK 127.0.0.1:6379> sadd fruits apple orange
(integer) 2
以上命令先将一个新的TTLRedis集合实例创建并命名为fruits,设定每个key的有效时间为60秒,然后将apple和orange加入到fruits中,此时fruits中已有了两个key,并且都建立了有效时间为60秒的计时器,当时间到达60秒时,集合中的apple和orange就会被移除。
TTLRedis可以为集合数据类型提供独立实现TTL功能,使得在Redis中可以用来替代时间窗口技术,并且可以自定义回调处理器,用来对key失效的数据进行清理和处理。在允许的数据库空间较小的情况下,TTLRedis也可以有效的减少数据库空间的负担,而使用TTLRedis替代数据库失效机制,可以更加高效、安全的处理数据的删除工作。