Redis读写键空间时的维护操作
当redis命令对数据库进行读写时,服务器不仅会对键空间执行指定的读写操作,还会执行一些额外的维护操作
在读取一个键之后(读写都会对键进行读取),服务器会根据键是否存在...,然后才会执行其他操作
如果有客户端使用WATCH命令监视了某个键,那么服务器在对被监视的键进行修改之后,会将这个键标记为脏(dirty),从而让事务程序注意到这个键已经被修改过....服务器每次修改一个键之后,都会对脏(dirty)键计数器的值增1,这个计数器会触发服务器的持久化及复制操作
如果服务器开启了数据库通知功能,那么在对键进行修改之后,服务器将按配置发送相应的数据库通知。...unix时间戳
移除过期时间
将过期字典中的键值对移除掉就行了
计算并返回剩余生存时间
计算键的过期时间与当前时间差 就行了
过期键的删除策略
定时删除:在设置键的过期时间的同时,创建一个定时器...,让定时器在键的过期时间来临时,立即执行对键的删除操作
优点:对内存最友好,通过定时器能让国企键尽可能快的被删除
缺点:对CPU时间很不友好,在过期键很多的情况下,删除过期键这一行为可能会占用相当一部分