永发信息网

Redis简介以及和其他缓存数据库的区别

答案:2  悬赏:0  手机版
解决时间 2021-02-19 16:08
  • 提问者网友:几叶到寒
  • 2021-02-19 06:24
Redis简介以及和其他缓存数据库的区别
最佳答案
  • 五星知识达人网友:duile
  • 2021-02-19 08:03
Redis 是一个开源的内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
它支持多种类型的数据结构,如字符串(Strings),散列(Hashes),列表(Lists),集合(Sets),有序集合(Sorted Sets或者是ZSet) 与范围查询, Bitmaps,Hyperloglogs 和 地理空间(Geospatial)索引半径查询。 其中常见的数据结构类型有String、List、Set、Hash、ZSet这5种。
全部回答
  • 1楼网友:行雁书
  • 2021-02-19 09:26
对于变化频率非常快的数据来说,如果还选择传统的静态缓存方式(memocached、file system等)展示数据,可能在缓存的存取上会有很大的开销,并不能很好的满足需要,而redis这样基于内存的nosql数据库,就非常适合担任实时数据的容器。 但是往往又有数据可靠性的需求,采用mysql作为数据存储,不会因为内存问题而引起数据丢失,同时也可以利用关系数据库的特性实现很多功能。 所以就会很自然的想到是否可以采用mysql作为数据存储引擎,redis则作为cache。而这种需求目前还没有看到有特别成熟的解决方案或工具,因此采用gearman+php+mysql udf的组合异步实现mysql到redis的数据复制。 mysql到redis数据复制方案 无论mysql还是redis,自身都带有数据同步的机制,比较常用的mysql的master/slave模式,就是由slave端分析master的binlog来实现的,这样的数据复制其实还是一个异步过程,只不过当服务器都在同一内网时,异步的延迟几乎可以忽略。 那么理论上也可以用同样方式,分析mysql的binlog文件并将数据插入redis。但是这需要对binlog文件以及mysql有非常深入的理解,同时由于binlog存在statement/row/mixedlevel多种形式,分析binlog实现同步的工作量是非常大的。 因此这里选择了一种开发成本更加低廉的方式,借用已经比较成熟的mysql udf,将mysql数据首先放入gearman中,然后通过一个自己编写的php gearman worker,将数据同步到redis。比分析binlog的方式增加了不少流程,但是实现成本更低,更容易操作。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯