java中热点数据是什么?Memcache与Redis的区别是什么?

BSO 2020-12-04 11:50:43 java常见问答 5823

这些年科学技术的发展是越来越好了,更多的人开始学习新技术来充实自己。不知道大家有没有了解过关于热点数据的相关知识,这也是非常重要的。具体内容一起来看看吧。

首先,我们需要明白的是,热点数据,缓存才有价值

对于冷数据而言,大部分数据可能还没有再次访问到就已经被挤出内存,不仅占用内存,而且价值不大。频繁修改的数据,看情况考虑使用缓存。

对于热点数据,比如我们的某IM产品,生日祝福模块,当天的寿星列表,缓存以后可能读取数十万次。再举个例子,某导航产品,我们将导航信息,缓存以后可能读取数百万次。

**数据更新前至少读取两次,**缓存才有意义。这个是最基本的策略,如果缓存还没有起作用就失效了,那就没有太大价值了。

那存不存在,修改频率很高,但是又不得不考虑缓存的场景呢?

有。比如,这个读取接口对数据库的压力很大,但是又是热点数据,这个时候就需要考虑通过缓存手段,减少数据库的压力,比如我们的某助手产品的,点赞数,收藏数,分享数等是非常典型的热点数据,但是又不断变化,此时就需要将数据同步保存到redis缓存,减少数据库压力。

然后来看一下,Memcache与Redis的区别都有哪些?

1.存储方式Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。 Redis有部份存在硬盘上,redis可以持久化其数据

2.数据支持类型memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型 ,提供list,set,zset,hash等数据结构的存储

3.使用底层模型不同 它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。 Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

4. value值大小不同:Redis最大可以达到512M;memcache只有1mb。

5.redis的速度比memcached快很多

6.Redis支持数据的备份,即master-slave模式的数据备份。

其实大家可以看出来,java中这种基础的知识还是非常的多的,所以这也需要我们花费很多的时间去了解。如果你想要了解更多的java常见问题,敬请关注奇Q工具网。

推荐阅读:

java spring boot中怎么使用redis?详细解析

java spring boot中怎么整合Redis?详细解析

redis队列原理是什么?代码示例