The invention discloses a redis cache cleaning method, a server and a computer readable storage medium. The redis cache cleaning method includes an iterative scan of the key stored in the redis cache through the scan command; the data types of each key are judged, in which the data types of the key include string type and non string type; for the string type. The key takes up a larger key of memory in the key and provides it to the user; for non string type key, the key is iteratively scanned by the non string type scanning command to obtain the sub key included in the key, obtaining the larger memory of the sub key in each of the sub key and providing it to the user. Compared with the existing technology, the invention will take up a large memory key and sub key to the user, thus the user can actively select which key to clean up; in addition, for non string type key, further iterative scanning to obtain the sub key that it contains, and select and delete the sub key, can avoid direct deletion. Unless string type key is easy to cause server blockage.
【技术实现步骤摘要】
redis缓存清理方法、服务器及计算机可读存储介质
本专利技术涉及移动终端
,尤其涉及一种redis缓存清理方法、服务器及计算机可读存储介质。
技术介绍
为了提高服务器的并发量以及吞吐量,服务器架构中都会用到缓存技术,其中redis缓存是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,该缓存技术由于其良好的性能,在服务器行业中用得最广泛。随着用户量的上升,缓存也会从单点过度到集群的方式,以增大缓存的空间。随着时间的推移,特别是服务器功能越来越多,redis缓存中会存在大量的无效数据,为了提高redis空间的利用率,保证服务器的正常运行,一种清空redis无效key的技术就显得越来越重要。传统的清空缓存的方式是通过设置key的有效时间,当到达有效时间时,redis可以自动清空;还有一种就是知道某个key,然后人工主动进行删除。这些方式对于redis中有海量的key并且没有设置有效时间时,就无法自动判别并进行删除;而且传统的清空方式是直接DELETE掉key,这种方式对于key的value不是很大的情况下是不错的选择,但是当key是个hash结构或者其他集合的结构,并且这些集合中有大量的数据(超过5百万)时,则直接DELETE这些大key会使redis阻塞,从而导致redis故障切换或者redis挂掉,使得整个服务器都不可用。同时,传统的查询key的方式使用keys命令或者smembers命令来查询key,这种方式一样也导致redis阻塞,影响服务器正常运行。同时在以往的redis缓存中,我们一般只能看 ...
【技术保护点】
1.一种redis缓存清理方法,应用于服务器,其特征在于,所述redis缓存清理方法包括以下步骤:通过scan命令迭代扫描redis缓存中存储的key;判断各个key的数据类型,其中key的数据类型包括string类型和非string类型;对于string类型的key,获取所述key中占用内存较大的key并提供给用户以供用户选择性的清理;对于非string类型的key,通过与所述非string类型对应的扫描命令对所述key进行迭代扫描以得到所述key中包括的子key,获取各个子key中占用内存较大的子key并提供给用户以供用户选择性的清理。
【技术特征摘要】
1.一种redis缓存清理方法,应用于服务器,其特征在于,所述redis缓存清理方法包括以下步骤:通过scan命令迭代扫描redis缓存中存储的key;判断各个key的数据类型,其中key的数据类型包括string类型和非string类型;对于string类型的key,获取所述key中占用内存较大的key并提供给用户以供用户选择性的清理;对于非string类型的key,通过与所述非string类型对应的扫描命令对所述key进行迭代扫描以得到所述key中包括的子key,获取各个子key中占用内存较大的子key并提供给用户以供用户选择性的清理。2.如权利要求1所述的redis缓存清理方法,其特征在于,所述通过与所述非string类型对应的扫描命令对所述key进行迭代扫描以得到所述key中包括的子key的步骤之后还包括:判断各所述子key的value是否为空;若判断结果为是,则直接删除所述子key;若判断结果为否,则执行所述获取各个子key中占用内存较大的子key并提供给用户的步骤。3.如权利要求1所述的redis缓存清理方法,其特征在于,所述对于string类型的key,获取所述key中占用内存较大的key并提供给用户以供用户选择性的清理的步骤具体包括:对于string类型的key,获取所述key的value所占的内存;判断所述value所占的内存是否大于预设内存阈值;若判断结果为是,则判定所述key为占用内存较大的key,并将所述key提供给用户以供用户选择性的清理。4.如权利要求1至3任一项所述的redis缓存清理方法,其特征在于,所述获取各个子key中占用内存较大的子key并提供给用户以供用户选择性的清理的步骤之后还包括:接收用户对string类型的所述key和/或所述子key的选择操作并将用户选中的key和/或子key从所述redis缓存中删除以释放相应的内存空间。5.如权利要求1所述的redis缓存清理方法,其特征在于,所述非string类型包括hash类型、list类型、set类型以及zset类型。6.一种服务器,其特征在于,所述服务器包括存储器、处理器及存储在所述存储器上...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。