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

2016-07-22 10:30:21 +08:00
 dbfox

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

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

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

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

//下载实体类基本信息

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
1697 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/294122

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX