For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在通过自学或者参加达内培训来学习软件编程开发的相关技术,下面我们就简单来了解一下,Redis内存淘汰算法用法。
这个内存淘汰策略我们可以通过配置文件来修改,redis.conf对应的配置项是“maxmemory-policynoeviction”,只需要把它修改成我们需要设置的类型即可。
需要注意的是,如果使用修改redis.conf的方式,当设置完成之后需要重启Redis服务器才能生效。
还有另一种简单的修改内存淘汰策略的方式,我们可以使用命令行工具输入“configsetmaxmemory-policynoeviction”来修改内存淘汰的策略,这种修改方式的好处是执行成功之后就会生效,无需重启Redis服务器。但它的坏处是不能持久化内存淘汰策略,每次重启Redis服务器之后设置的内存淘汰策略就会丢失。
内存淘汰算法主要包含两种:LRU淘汰算法和LFU淘汰算法。
LRU(LeastRecentlyUsed,近少使用)淘汰算法:是一种常用的页面置换算法,也就是说久没有使用的缓存将会被淘汰。
LRU是基于链表结构实现的,链表中的元素按照操作顺序从前往后排列,新操作的键会被移动到表头,当需要进行内存淘汰时,只需要删除链表尾部的元素即可。
Redis使用的是一种近似LRU算法,目的是为了更好的节约内存,它的实现方式是给现有的数据结构添加一个额外的字段,用于记录此键值的后一次访问时间。Redis内存淘汰时,会使用随机采样的方式来淘汰数据,它是随机取5个值(此值可配置),然后淘汰久没有使用的数据。
LFU(LeastFrequentlyUsed,不常用的)淘汰算法:不常用的算法是根据总访问次数来淘汰数据的,它的核心思想是“如果数据过去被访问多次,那么将来被访问的频率也更高”。
LFU相对来说比LRU更“智能”,因为它解决了使用频率很低的缓存,只是近被访问了一次就不会被删除的问题。如果是使用LRU类似这种情况数据是不会被删除的,而使用LFU的话,这个数据就会被删除。
Redis内存淘汰策略使用了LFU和近LRU的淘汰算法,具体使用哪种淘汰算法,要看服务器是如何设置内存淘汰策略的,也就是要看“maxmemory-policy”的值是如何设置的。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。