首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Redis

redis到底是个什么东西?

  •  
  •   liutanyu · 2012-01-05 20:41:14 +08:00 · 5724 次点击
    这是一个创建于 2895 天前的主题,其中的信息可能已经有所发展或是发生改变。
    和hadoop这些mapreduce一样吗?看介绍总也不明白
    23 回复  |  直到 1970-01-01 08:00:00 +08:00
        1
    tao_sky   2012-01-05 20:45:30 +08:00
    nosql,KV数据库。
        2
    Livid   V2EX Moderator   2012-01-05 20:45:32 +08:00
    支持多种语言客户端的数据结构服务器。

    比如你可以把一个 Python 的 list 存入 Redis,然后在 Perl 里读出来,依然是一个 list。

    或者你可以让不同的客户端共用一个计数器,而这个计数器就是存储在 Redis 中的一个整数对象。

    Redis 提供了非常多类型的数据结构存储可能。
        3
    virushuo   2012-01-05 22:38:47 +08:00
    除了上面说的,redis还有一些特殊之处,它完全保存在内存中,同步到存储。这样可以让redis非常快,也可以取代memcached做对象缓存。使用上的方式也有一些区别,为了防止断电丢失数据,除了依靠aof,还需要做数据同步,redis可以方便在不同节点间同步数据。
        4
    Los   2012-01-05 22:51:47 +08:00
    有 C++ 开发经验的话你会感觉很亲切,对应 STL 的 set,list 之类的
        5
    est   2012-01-05 23:17:06 +08:00
    数据结构存储器
        6
    tioover   2012-01-05 23:23:41 +08:00
    高速的内存数据库
        7
    binux   2012-01-05 23:29:10 +08:00
    目前用到的特性: kv数据库,内存数据库,大量的数据结构,可持久化
        8
    haohaolee   2012-01-05 23:35:34 +08:00
    如果是数据结构存储器,那是不是就是一种序列化解决方案?那和protocol buffers比较呢
        9
    aisk   2012-01-05 23:50:29 +08:00
    数据结构存储 支持大量的指令对保存的数据类型进行操作,比如对带权重的列表中的某一项权重+1
        10
    reus   2012-01-06 00:38:35 +08:00 via Android
    不是解决序列化问题的,
    能表示的数据结构有限
    容器的键和值都只能是字符串,容器不能嵌套
        11
    aisk   2012-01-06 00:49:27 +08:00
    @reus “只能是字符串”这个不太认可,这个可以由各个语言的client将各自的数据类型序列化成对应的类型吧
        12
    reus   2012-01-06 08:34:11 +08:00 via Android
    @aisk http://redis.io/topics/data-types 看每个容器类型的第一句,xxx of String
    序列化输出的也是字符串
        13
    aisk   2012-01-07 13:55:33 +08:00
    @reus 你的意思是没有传统数据库的整形日期型等等,全部以字符串存储占据空间太大?
        14
    reus   2012-01-07 22:17:31 +08:00
    @aisk 不是
        15
    iammutex   2012-01-07 22:35:25 +08:00
        16
    aisk   2012-01-07 22:37:51 +08:00
    @reus 那是?
        17
    j   2012-01-07 22:39:32 +08:00
    {}
        18
    reus   2012-01-08 02:31:08 +08:00
    @aisk 意思就只是它的容器只能存字符串。如果容器可以嵌套容器,就更好了,作为一个数据结构服务器就更完美了
        19
    Ricepig   2012-01-08 04:07:27 +08:00
    memcache加上持久化特性

    可以这么理解吧?哈哈
        20
    chloerei   2012-01-08 10:14:04 +08:00
    @Ricepig memcache 没有List Hash Sets这些数据结构。
        21
    aisk   2012-01-08 10:32:53 +08:00
    @reus 这种操作应该通过类似id的方式,将容器中的某个值和其他容器关联起来吧
        22
    reus   2012-01-08 12:28:32 +08:00
    @aisk 是的。不过开销大很多了
        23
    aisk   2012-01-08 13:02:10 +08:00
    @reus 如果内部实现嵌套其他容器,也是会使用这种类似指针的方式把另外的容器关联进某个容器的值里吧,和这样做并没有什么区别。你说的开销大很多只能是客户端多一次网络连接的开销了,我觉得这并不大,并且可以用pipeline的方式打包发送查询来节省网络开销
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3540 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 41ms · UTC 10:16 · PVG 18:16 · LAX 02:16 · JFK 05:16
    ♥ Do have faith in what you're doing.