Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
488 views
Welcome To Ask or Share your Answers For Others

1 Answer

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...