Redis中的数据特征:
- Redis是一种内存级数据库,所有数据仅存在内存中,内存中的数据可以通过TTL指令获取其状态
- XX:具有时效性的数据(多少秒)
- -1:永久有效的数据
- -2:已经过期的数据,被删除的数据,未定义的数据
什么是过期数据?
- 过期数据就是之前设置了有效期,过了期效的数据。这些数据并不是过期之后立马删除,而是仍然存在内存中,等着需要删除的时候再删除。
- redis删除过期数据有三种策略:
- 定时删除
- 惰性删除
- 定期删除
时效性数据的存储结构
- 在设置key的value过期时间的时【expire(秒)、pexpire(毫秒)、expireat(时间戳)】,在redis的存储空间中的expires中是存储过期时间的,value和过期时间是一一对应的hash结构。删除的时候,就根据时间删除数据。
数据删除策略的目标
- 在内存占用与CPU占用之间寻找一种平衡(在CPU忙的时候,不删数据,闲的时候再删除),顾此失彼都会造成整体redis的性能下降,甚至引发服务器宕机或者内存泄露。
定时删除
- 创建一个定时器