服务器 在线信息数据的设计问题

dengshushu68 2014-07-17 11:31:02
第一次做服务器,有几本是一个人奋战,请各大侠赐教。

用C#.NET做服务器, 应用架构基本就是:用户--自定义组-->设备,即及用户登录后可以查看每组下面的设备信息。

服务器上这个 用户的在线状态信息(登录IP,登录时间,时长等) 和 设备最新信息(运动状态,最新跟新时间等)

这些信息在设计时是直接放在内存变量(栈)里 还是 放到数据库表里啊?

如果放到内存里仍然需要对应数据库表来记录,那么这个从内存更新到数据表里周期一般定义到多久?

用户的设备是通过TCP连接到服务器后台定时(10秒)上传数据。
...全文
180 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dengshushu68 2014-07-17
  • 打赏
  • 举报
回复
引用 3 楼 lindping 的回复:
用户数量较多,应用服务器内存不够但数据库性能也不够,可以考虑后台把数据写入数据库时拷贝一份写入xml文件, 用户登录从xml文件读出设备信息。
后台设备有1万,每10秒更新数据,用户登录数不定。 登录时读取,那登录后的实时数据显示给用呢, 还是从xml读取会不会也很慢和费资源? 是不是最好就用大内存放在缓存里?
lindping 2014-07-17
  • 打赏
  • 举报
回复
用户登录的数量不多,可以让后台把数据写入数据库时保留一份在缓存里,用户登录时从缓存读取信息给他。 用户数量较多,应用服务器内存不够但数据库性能足够,直接从数据库读取 用户数量较多,应用服务器内存不够但数据库性能也不够,可以考虑后台把数据写入数据库时拷贝一份写入xml文件, 用户登录从xml文件读出设备信息。
dengshushu68 2014-07-17
  • 打赏
  • 举报
回复
我的意思所有用户或设备的这个在线列表。 后台是有记录所有数据的,但还有个最新状态或数据的 给前台显示的。 后台更新时是把最新状态记录到数据库,然后前台页面需要时是从数据库读取出来? 还是后台更新时把最新状态放在内存,然后前台需要时直接从变量取?
liqiucu 2014-07-17
  • 打赏
  • 举报
回复
用户的设备是通过TCP连接到服务器后台定时(10秒)上传数据。 都有这个了。 你获取这个数据不就解决了你所有问题了 这些信息在设计时是直接放在内存变量(栈)里 还是 放到数据库表里啊? 数据你总得读出来吧=>读出来放变量=>insert to sql 如果放到内存里仍然需要对应数据库表来记录,那么这个从内存更新到数据表里周期一般定义到多久? 立马更新呗
jimil 2014-07-17
  • 打赏
  • 举报
回复
放表里,这种东西放内存不适合,如果真要设计成放内存,你得考虑回收和自动回收同在线和超时的定义,还得修改IIS,当然,如果是按大型项目来算,有专业人员部署维护,那可以这样设计,如果是自己维护,没必要给自己找麻烦。
rtdb 2014-07-17
  • 打赏
  • 举报
回复
尽量放内存,性能好 1万数据其实不大,一条1K的话才10M而已

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧