就说 java 应用程序吧,我把数据保存到 HashMap 里不可以吗?什么是 Hashmap 不能实现而 redis 可以实现的?
就说 java 应用程序吧,我把数据保存到 HashMap 里不可以吗?什么是 Hashmap 不能实现而 redis 可以实现的?
总结下:
|
1
分布式,多个 jvm 实例也么共享 hashmap
|
|
2
Redis 的数据可以让任意一种语言来存取,你的 Hashmap 呢?
Redis 的数据可以在 App crash 掉重启后继续使用,你的 Hashmap 呢? Redis 的数据可以多台 App Server 共享一份缓存,你的 Hashmap 呢? |
|
3
以前公司国企,做了很多外包,大多都是 Java,SSH,厂商好几个,但项目都有一个共性特点,不知道用 redis
准确的讲,不是不知道用 redis, 是不知道一个 web 服务还能开多个实例。 从来没有想过程序有可能会在多于一个进程,多于一台机器,多于一个子网里面运行。 |
|
xiaoyaokingAug 21, 2018 via Android
4
因为好用
|
|
5
如何两个实例共享 HashMap,你要不要自己实现一波分布式 HashMap ?
|
|
6
来实现一个自动 sharding、高可用、强一致的分布式 Hashmap 试试?
|
|
7
单机 hashmap 和 redis 没啥区别,redis 多一个过期时间。
多机就不同了,redis 有集群,自动保存,自动恢复,还有消息队列,还有跨语言调用。如果你用 hashmap 做对外接口,性能能做到 redis 这么好? |
|
mornlightAug 22, 2018
8
看楼主的发帖记录是个好奇心很强的同学。
|
|
9
可以。redis 数据结构和 Java hashmap 很相似。只是你要设计 redis 那样你得考虑分布式,高可用,线程安全。
|
|
10
例子举错了,用 Java 实现的话应该是 ehcache 之类的缓存框架才对。
很多时候某一场景解决方案大家倾向于选业界常用的,是因为坑都被踩过了。 用 Java hashmap 当然可以当缓存服务器,这相当于重复造轮子的过程,碰到问题要自己解决,比如满足分布式存储的 CAP。然后做着做着,另一个类 Redis 的缓存服务诞生了。 |