商品的存储技术按商品业务使用场景分别选择存储技术。常见的商品信息包含商品基本信息、商品的图片视频信息、商品的规格信息、商品的介绍信息、商品的参数信息、还有商品的销售信息等。各部分的信息结构不一样因此存储选型也会有所差异。
商品基本信息存储。商品基本信息模型固定通用性强且具有较强的事务性要求,因此一般选择关系型数据库存储,目前使用最多的就是Mysql存储。如果数据量很大需要早期规划商品的分库分表策略或读写分离策略。同时为了保护数据库会使用Redis缓存商品基本信息。
商品的图片视频存储。商品的图片和视频文件比较大,目前常见的存储方式是采用分布式对象存储数据库存储源文件。目前常用的分布式对象存储服务有阿里云OSS、AWS的S3、七牛云,还有开源分布式对象数据库FastDFS。采用关系型数据库如Mysql存储文件路径,这样就做到物理和逻辑存储分离。
商品参数信息存储。由于商品参数的不确定性通常选择MongoDB进行存储。因为MongoDB是基于JSON描述数据天然具有扩展,对于多变不确定的数据结构具有良好的扩展性。
商品介绍信息存储。商品介绍信息大多数情况下都是图文描述,一般会作为图片或静态页面进行展示。因此一般也会使用对象存储数据库存储生成的图片或静态页面。
商品的检索信息存储。商品的检索是最为频繁的 *** 作之一。目前常用的搜索引擎就是ElasticSearch。通过将商品的销售信息建立反向索引存储进ES,满足基本的搜索能力。
商品的存储数据源类型比较多,因此数据的一致性就比较复杂。目前采用最多的就是最终一致性方式。通过业务接口调用,分布式消息,还有监控binlog保持数据源间的数据更新。采取CQRS模式分别维护读写 *** 作。
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
*面向集合存储,易存储对象类型的数据。
*模式自由。
*支持动态查询。
*支持完全索引,包含内部对象。
*支持查询。
*支持复制和故障恢复。
*使用高效的二进制数据存储,包括大型对象(如视频等)。
*自动处理碎片,以支持云计算层次的扩展性。
*支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
*文件存储格式为BSON(一种JSON的扩展)。
*可通过网络访问。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)