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