|
RU算法
什么是LRU?
上面说到了Redis可使用最大内存使用完了,是可以使用LRU算法进行内存淘汰的,那么什么是LRU算法呢?
LRU(Least Recently Used),即最近最少使用,是一种缓存置换算法。在使用内存作为缓存的时候,缓存的大小一般是固定的。当缓存被占满,这个时候继续往缓存里面添加数据,就需要淘汰一部分老的数据,释放内存空间用来存储新的数据。这个时候就可以使用LRU算法了。其核心思想是:如果一个数据在最近一段时间没有被用到,那么将来被使用到的可能性也很小,所以就可以被淘汰掉。
使用java实现一个简单的LRU算法
如果不设置最大内存大小或者设置最大内存大小为0,在64位操作系统下不限制内存大小,在32位操作系统下最多使用3GB内存
Redis的内存淘汰
既然可以设置Redis最大占用内存大小,那么配置的内存就有用完的时候。那在内存用完的时候,还继续往Redis里面添加数据不就没内存可用了吗?
实际上Redis定义了几种策略用来处理这种情况:
noeviction(默认策略):对于写请求不再提供服务,直接返回错误(DEL请求和部分特殊请求除外)
allkeys-lru:从所有key中使用LRU算法进行淘汰
volatile-lru:从设置了过期时间的key中使用LRU算法进行淘汰
allkeys-random:从所有key中随机淘汰数据
volatile-random:从设置了过期时间的key中随机淘汰
volatile-ttl:在设置了过期时间的key中,根据key的过期时间进行淘汰,越早过期的越优先被淘汰
当使用volatile-lru、volatile-random、volatile-ttl这三种策略时,如果没有key可以被淘汰,则和noeviction一样返回错误
如何获取及设置内存淘汰策略
获取当前内存淘汰策略:
目前,Holmes已经向环境署提供Sam化身方案,各合作伙伴们则计划在今年晚些时候分享更多项目成果。
海洋垃圾数据易于访问及使用,有何具体价值?
简单来说,我们需要让人们更积极地参与到海洋垃圾问题的解决中,并为他们提供采取行动所需要的信息与数据支持。
Holmes指出,“难以访问及使用的数据自然容易受到忽视。IBM的AI专家团队与环境界为此设立了共同的目标,即以一种引人入胜、直观且新颖的方式访问并使用海洋垃圾数据。”
Holmes表示,Sam化身的实现,离不开作为技术底层的协作沙箱概念——即通过一系列虚拟机与协同空间,将思路转化为实际解决方案。这一项目也在联合国环境规划署组织的会议上得到广泛好评。
作为在线服务,Sam能够为从周末志愿者到政府机构的任何个人、团体或组织提供洞见与可行性数据。
“虽然这套免费的概念验证系统尚未正式揽入使用,但其已经通过联合国环境规划署、IBM以及各成员国代表的审议与体验。我们对这一目标感到兴奋,也将努力推动其不断完善。未来,我们将说明更多用户加入进来,在Sam的帮助下持续降低海洋垃圾数据的获取门槛、改善海洋环境保护行动的实际效果。”

(编辑:南昌站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|