V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lookdowndown
V2EX  ›  问与答

为什么要用 redis?

  •  
  •   lookdowndown · 2018-08-21 22:54:47 +08:00 · 3753 次点击
    这是一个创建于 2295 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就说 java 应用程序吧,我把数据保存到 HashMap 里不可以吗?什么是 Hashmap 不能实现而 redis 可以实现的?

    第 1 条附言  ·  2018-08-22 13:57:18 +08:00

    总结下:

    • Redis可以在多语言系统中使用
    • Redis可以在分布式系统使用
    • Redis支持数据的持久化,服务器重启之后数据不会丢
    • Redis其他特性方便了使用,比如过期时间、操作的原子性、消息队列、事务、数据备份等等。
    • 在以上四点的基础上Redis还是高可用、高性能的存储系统
    10 条回复    2018-08-22 08:23:33 +08:00
    sudden
        1
    sudden  
       2018-08-21 22:56:51 +08:00 via Android   ❤️ 1
    分布式,多个 jvm 实例也么共享 hashmap
    zn
        2
    zn  
       2018-08-21 23:12:45 +08:00   ❤️ 1
    Redis 的数据可以让任意一种语言来存取,你的 Hashmap 呢?
    Redis 的数据可以在 App crash 掉重启后继续使用,你的 Hashmap 呢?
    Redis 的数据可以多台 App Server 共享一份缓存,你的 Hashmap 呢?
    EPr2hh6LADQWqRVH
        3
    EPr2hh6LADQWqRVH  
       2018-08-21 23:23:04 +08:00   ❤️ 1
    以前公司国企,做了很多外包,大多都是 Java,SSH,厂商好几个,但项目都有一个共性特点,不知道用 redis

    准确的讲,不是不知道用 redis, 是不知道一个 web 服务还能开多个实例。

    从来没有想过程序有可能会在多于一个进程,多于一台机器,多于一个子网里面运行。
    xiaoyaoking
        4
    xiaoyaoking  
       2018-08-21 23:24:00 +08:00 via Android
    因为好用
    swulling
        5
    swulling  
       2018-08-21 23:24:02 +08:00   ❤️ 1
    如何两个实例共享 HashMap,你要不要自己实现一波分布式 HashMap ?
    yanaraika
        6
    yanaraika  
       2018-08-21 23:27:22 +08:00   ❤️ 1
    来实现一个自动 sharding、高可用、强一致的分布式 Hashmap 试试?
    lhx2008
        7
    lhx2008  
       2018-08-22 00:11:47 +08:00 via Android   ❤️ 1
    单机 hashmap 和 redis 没啥区别,redis 多一个过期时间。
    多机就不同了,redis 有集群,自动保存,自动恢复,还有消息队列,还有跨语言调用。如果你用 hashmap 做对外接口,性能能做到 redis 这么好?
    mornlight
        8
    mornlight  
       2018-08-22 00:12:39 +08:00
    看楼主的发帖记录是个好奇心很强的同学。
    mmdsun
        9
    mmdsun  
       2018-08-22 08:05:55 +08:00 via Android   ❤️ 1
    可以。redis 数据结构和 Java hashmap 很相似。只是你要设计 redis 那样你得考虑分布式,高可用,线程安全。
    caixiexin
        10
    caixiexin  
       2018-08-22 08:23:33 +08:00 via Android   ❤️ 1
    例子举错了,用 Java 实现的话应该是 ehcache 之类的缓存框架才对。
    很多时候某一场景解决方案大家倾向于选业界常用的,是因为坑都被踩过了。
    用 Java hashmap 当然可以当缓存服务器,这相当于重复造轮子的过程,碰到问题要自己解决,比如满足分布式存储的 CAP。然后做着做着,另一个类 Redis 的缓存服务诞生了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3669 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 04:35 · PVG 12:35 · LAX 20:35 · JFK 23:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.