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 Sorts { get; set; } //控制在不同位置的排序
}
//后台控制下载排序
public class InfoSort
{
public string Key { get; set; } //排序 Key (首页某列表位置)
public int Sort { get; set; } //排序数字
}
mysql 表对应设计
[info] 对应实体类 Info
idint
namevarchar
logovarchar
hotint
hotwint
hotmint
sortstext 存放为 json 数据
mongodb 不需要设计,写操作 mysql 的时候,同时存储实体类到 mongodb
redis 把需要排序的数据存储为一个队列 ,比如月流量排行榜,周流量排行榜,总浏览排行榜,这些数据 一方面要读操作,另一方面更新比较频繁,用户浏览一次就追加一次,需要实时的读写所以用 redis
然后定时的同步到 mysql 和 mongodb