主页 > 新闻资讯 > 大数据培训:Redis数据库与TTL过期处理

大数据培训:Redis数据库与TTL过期处理

作者:张老师 浏览次数: 2021-06-16 17:12
作为大数据生态下备受关注的NOSQL数据库之一,Redis的重要性相信不必特意强调。Redis的存储模式,是键值对存储,包含多种数据结构、支持网络、基于内存、可选持久性。今天的大数据培训分享,我们主要来讲讲Redis数据库与TTL过期处理。

数据库

在Redis中也是有数据库的概念的,只不过不像mysql那样是显示管理的,而是使用一个数字来表示,默认是0数据库。默认情况下redis会创建16个数据库,可以通过select 1命令切换数据库。

Redis本身是一个键值对系统,只不过值可以是前面提过的五种不同类型,因此不同的数据库就代表不同的键的空间。

大数据培训:Redis数据库与TTL过期处理

实现上,每个数据库都会包含一个redisDb对象,这个对象内部有一个dict,也就是上面说的键值对。因此客户端在使用不同的数据库时,实际上在使用不同db对象下的dict。

大数据培训:Redis数据库与TTL过期处理

生存时间与过期

Redis可以通过EXPIRE或者PEXPIRE来设置某个key的生存时间,即Time to Live,TTL。其中EXPIRE设置的是过期的秒数,PEXPIRE设置的是过期的UNIX时间戳。最终他们的底层都是基于UNIX时间戳来实现。

大数据培训:Redis数据库与TTL过期处理

在实现上,redisDb对象内部会使用dict来维护键值对内容,使用expires来维护key与过期时间的关系。这样可以通过扫描expires快速知道哪些key是过期的。

如果想移除某个Key的过期配置,可以通过PERSIST命令移除expires中的过期时间配置。使用TTL命令或者PTTL可以查看剩余的生存时间。

配置好过期时间,如果某个key过期了该怎么处理呢?Redis提供了三种删除策略:

定时删除,在设置key的过期时间时,创建定时器,定时器会在过期时触发,立即删除该key。优点是删除及时;缺点是会额外消耗CPU,在系统访问性能瓶颈时,增加系统压力。

惰性删除,即在访问到这个key时,判断是否过期,如果过期就立刻删除。优点是不会消耗过多的资源;缺点是如果这个key一直不被访问,那么就永远不会被删除掉。

定期删除,每隔一段时间,系统自动检查,删除一定数量的过期键。优点是即不会过多消耗CPU资源,又避免资源释放不掉;不过需要用户具有一定的经验,才能配置好这个定期规则,从而达到移除与性能之间的平衡。

数据备份时对过期键的处理

在生成RDB文件时,会忽略过期的键。主服务器加载RDB时,也会忽略;从服务器加载时会直接加载。

AOF持久化时,忽略过期的影响。当被删除时,追加DEL命令。在AOF重写时,会忽略过期的键。

复制模式下,从节点会忽略过期,完全由主节点控制。主节点删除过期键时,会向各个从服务器发送DEL命令。

关于大数据培训,Redis数据库与TTL过期处理,以上就为大家做了简单的介绍了。Redis在支持数据存储上,还是有很多细节值得注意的,在学习当中可以结合到源码去多理解。成都加米谷大数据,专业大数据培训机构,大数据开发、数据分析与挖掘,零基础班本月正在招生中,课程大纲及试学视频,可联系客服获取!
热点排行
推荐文章
立即申请>>