java - 有关redis等内存数据库 性能 和 必要性 的疑惑

查看:86
本文介绍了java - 有关redis等内存数据库 性能 和 必要性 的疑惑的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1. 性能
我们确实知道redis是个内存数据库,用于缓存会提高性能。但如果redsi和应用程序不在同一台服务器,那么网络IO不也需要时间吗?现实中确实有很多redis和应用程序不在一台服务器的现象,怎么解释呢?
2. 必要性
如果不是需要跨语言操作数据,仅仅是在内存中缓存的话。那么利用编程语言自身提供的数据类型不好吗?不也是在内存中吗?比如java,数据类型比redis的5种类型还丰富的多呢!只要一直保持引用,垃圾回收器就不会回收。所谓key-value内存数据库,用编程语言中的 变量名-变量值 做不一样吗?而且对于熟悉java的人来说,根本就不再需要学习redis,不挺好的吗?

解决方案

1、多台服务器可以是内网啊。
2、redis可以设置很大的内存的,也就说量上有可能java是达不到的
3、还有就是redis可保持数据的持续性,比如你java如果重启了或者你的java需要重新发布,那内存中的数据岂不是不存在了,redis不存在这个问题。
4、而且redis更可靠,redis的数据可以沉淀到硬盘,可以恢复的,那你的java内存中的东西怎么恢复。
5、很简单的一个问题就是,比如session你存在内存中,也就是说如果你重新发布的话,所有的用户都要重新登录了,redis不会有这个问题的。
6、再比如,如果你有N多G的热数据需要存放在内存中,以方便高效率的读取,难道你告诉我用java的内存吗。

这篇关于java - 有关redis等内存数据库 性能 和 必要性 的疑惑的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆