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

Mysql MongoDB Redis 我理解的适用场景,不知道对不对?

  •  
  •   dbfox · 2016-07-22 10:30:21 +08:00 · 1696 次点击
    这是一个创建于 2898 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Mysql 或 postgresql 、 mssql 关系型数据库,作为最终的数据存储(稳定)

    MongoDB 可以作为一个中间数据缓存层组合出一个必要的数据实体(灵活的 json 结构可以组合出复杂数据类型,又可以复制多台服务器),读取速度也快,高并发构建主从服务器无压力

    Redis 用于统计列表排序等环节 (对 redis 理解不深,只知道是内存数据库读写操作速度快)

    例如: 需求是一个下载站,图中圈出位置是控制了排序的

    image

    //下载实体类基本信息
    
    public class Info
    {
    	public string Name { get; set; } //名称
    	public string Logo { get; set;}  //logo 图
    
    	public int Hot { get; set; }  	//总热度
    	public int HotW { get; set; } 	//周热度
    	public int HotM { get; set; }	//月热度
    
    	public List<InfoSort> Sorts { get; set; }  //控制在不同位置的排序
    }
    
    //后台控制下载排序	
    public class InfoSort
    {
    	public string Key { get; set; }  //排序 Key (首页某列表位置)
    	public int Sort { get; set; }    //排序数字
    }
    
    
    
    mysql 表对应设计
    
    
    [info] 	对应实体类 Info
    
    	id			int		
    	name		varchar
    	logo		varchar
    	hot			int
    	hotw		int
    	hotm		int
    	sorts		text 存放为 json 数据
    	
    
    mongodb 不需要设计,写操作 mysql 的时候,同时存储实体类到 mongodb
    
    redis 把需要排序的数据存储为一个队列 ,比如月流量排行榜,周流量排行榜,总浏览排行榜,这些数据 一方面要读操作,另一方面更新比较频繁,用户浏览一次就追加一次,需要实时的读写所以用 redis
    
    然后定时的同步到 mysql 和 mongodb
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3153 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:34 · PVG 18:34 · LAX 03:34 · JFK 06:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.