为什么将并行地图缓存升级到Redis?

为什么将并行地图缓存升级到Redis?

Java中的并发映射一直是一种古老的缓存方法,简单,本地,快速并且没有外部依赖关系使其成为遗留代码爱好者的完美选择,如果您仍在项目中使用它,现在是时候升级了,这里有一些我建议的原因

并发映射内存约束

缓存与并行地图非常相似,但并不完全相同。 基本区别在于,并发映射会保留添加到其中的所有元素,直到将其明确删除为止。 另一方面,通常将高速缓存配置为自动退出条目,以限制其内存占用量。 仅凭逐出策略实施是一项开销,为什么在文档中注明Guava或Java 8版本Caffiene时重新创建轮子就可以了

通常,Guava或Caffiene缓存实用程序在以下情况下适用:

· 您愿意花费一些内存来提高速度。

· 您希望有时会多次查询键。

· 您的缓存将不需要存储超出RAM容量的数据。 (Guava缓存 在应用程序的一次运行中 本地的 。它们不将数据存储在文件中或外部服务器上。如果这不满足您的需求,请考虑使用其他工具。)

就像说的那样,它们不将数据存储在文件或外部服务器中,因此流行和现代的外部服务器选项可以是redis。

什么是Redis?

Redis网站表示如下:

Redis是一个开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。 它支持数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集,位图,超级日志和带有半径查询的地理空间索引。 Redis具有内置的复制,Lua脚本,LRU逐出,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。

什么时候使用Redis?

如果您不仅需要缓存,还可以! 用多种语言编写的软件将使用您的缓存! 然后使用Redis。 在比较memCache和Redis时,找到了一个漂亮的人在Stackoverflow上进行解释:

Redis不仅是缓存,还可以看作是键值存储(数据库之类),其中数据存储在RAM内存中的计算机上,但也可以刷新到磁盘(以保持持久性)。

由于Redis的数据结构,您几乎总是要使用Redis。 将Redis用作缓存,您将获得很多功能(例如微调缓存内容和持久性的能力)并提高整体效率。 一旦使用了数据结构,对于特定的应用场景,效率的提升将变得巨大。

Redis的优势在缓存 管理的 几乎每个方面都显而易见 高速缓存采用一种称为数据逐出的机制,通过从内存中删除旧数据为新数据腾出空间。 Memcached的数据驱逐机制采用了最近最少使用的算法,并在某种程度上任意驱逐了大小与新数据相似的数据。

相比之下,Redis可以对逐出进行细粒度控制,让您从六种不同的逐出策略中进行选择。 Redis还采用了更复杂的方法来进行内存管理和逐出候选者。 Redis支持惰性驱逐和主动驱逐,只有在需要或主动需要更多空间时才驱逐数据。 另一方面,Memcached仅提供懒惰驱逐。

Redis为您可以缓存的对象提供了更大的灵活性。 虽然Memcached将键名限制为250个字节,并且只能与纯字符串一起使用,但是Redis允许键名和值每个最大为512MB,并且它们是二进制安全的。 另外,Redis具有五种主要数据结构可供选择,通过智能缓存和缓存数据的操作为应用程序开发人员开辟了无限的可能性。

当您深入了解项目的缓存选项时,我肯定会建议您查看Redis,使用您想使用的最大功能来使您的应用程序更快更好。

From: https://hackernoon.com/why-upgrade-concurrent-map-cache-to-redis-88dd473122e7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值