在语音平台开发时为应对高并发场景可引入缓存技术,缓存的使用可以缓解数据库的访问压力,提升系统的可用性。由于缓存的存储空间是有限的,所以当缓存中的数据过期后需要采取正确的方式进行清理。
一、过期策略
1、定期删除
所谓的定期删除是指Redis每100ms执行一次过期数据的查询工作,如果查询到过期数据则直接删除。定期删除每次的作用对象并不是语音平台开发中的所有库,而是采用随机的方式选取一定数量的键进行过期数据的排查的删除。
2、惰性删除
在语音平台开发中定期删除是一种主动的过期策略,而惰性删除是一种被动的过期策略,所谓的惰性删除主要是指当用户对缓存中的某一数据发起访问请求后,缓存会对该数据进行过期检查,如果是过期数据则直接删除。
二、内存淘汰机制
如果语音平台开发中的过期数据太多,仅通过过期策略实现过期数据的删除可能会导致Redis内存耗尽,为了避免该情况,对于缓存中的数据还需要实现内存淘汰策略。常见的内存淘汰策略有以下几种:
1、当缓存的内存使用率达到一定要求后,如果缓存中的数据没有设置过期时间,则需要在写入新数据时进行报错,这是Redis缓存中默认的一种策略。
2、当缓存的内存使用率达到一定要求后,如果缓存中的数据没有设置过期时间,则可以将使用次数较少的旧数据清除掉,然后再进行新数据的缓存。
3、如果缓存内存使用率到达且缓存中数据没有设置过期时间,还有一种不太推荐的内存淘汰策略,那就是随机删除缓存中的数据。
4、如果缓存内存使用率达到一定要求,且缓存中的数据设置了过期时间,则可以将使用最少的旧数据清除掉,保存新数据。
5、当语音平台开发的缓存内存使用率到达且缓存中数据设置了过期时间,则可以将即将过期的旧数据删除掉。
6、如果缓存内存使用率达到且缓存中数据设置了过期时间,也可以采用随机的方式进行数据的删除。
其实缓存在语音平台开发中可以起到很多作用,只有正确地使用缓存才能充分发挥出其价值。不过在使用缓存的同时还需要做好缓存问题的预防工作,这样才能更大程度提升语音平台开发质量。
声明:本文由云豹科技原创,转载请注明作者名及原文链接,否则视为侵权