web站点全局变量问题。帮忙提供设计思路。

Kylor 2014-04-17 11:24:09
大概内容是这样的。 每个用户登入的时候都会有一些默认值。
这个默认值主要记录用户当前流程状态。如果用户从新登入,默认值全部重新恢复。
用户登入后加载默认值之后,每次操作流程都会修改默认值的内容。不用页面,不同函数,不同类中都会用到。请问用什么方法存储比较好?
本人思路:
1:session。 可以实现但是不想用因为用户多了。怕服务器压力大。
2:cookie。不想用,因为默认值的内容太多,cookie大小有限制。
请问大家有什么好办法吗?
...全文
357 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
星九九 2014-04-23
  • 打赏
  • 举报
回复
搭个memcached。
Kylor 2014-04-22
  • 打赏
  • 举报
回复
引用 23 楼 sp1234 的回复:
[quote=引用 6 楼 yb871201 的回复:] 服务器重启是没有问题。 因为用户只要重新登入了。 就相当于恢复全部的值。
呵呵。服务器会随时重启,而不是你来控制它何时重启。 看来你没有认真考虑过流程的影响,也没有认真研究过什么“资源压力”概念。[/quote] 这个服务器重启的问题,我不考虑,这个我很清楚,我控制不了。 除了人为重启,外在因素有很多可以导致服务器重启,我不考虑这个问题。 您说的认真考虑流程的影响,还希望请指教。 什么是流程的影响? 是指用户在完成某一个任务的时候当前的状态吗? 还是指当流程丢失以后怎么去恢复? 是对流程的监控吗? 还是指每个流程节点结束以后影响的数据? 还是一个流程的启动对后面流程的影响? 如果是这些? 那我都考了过了。而起考虑的比我打出来的还要多? 资源压力概念,这个我真没有研究过? 还请多多指教。 非常感谢您的回复,还请继续回复。希望能在您的回复中学到更多的东西。
Kylor 2014-04-22
  • 打赏
  • 举报
回复
引用 22 楼 sp1234 的回复:
[quote=引用 楼主 yb871201 的回复:] 但是不想用因为用户多了。怕服务器压力大。
这其实是个空话。你应该说明多少用户才算“多”,此时对服务器有多大“压力”。 如果说1000个用户、用了20M内存保存就算是对服务器压力大了,我看就别写程序了,搞文艺创作也行。[/quote] 这个不好意思,我没有把话说清楚,我考虑服务器压力,是因为在服务器上,不止我这个一个程序在运行。我不想用服务器过多的资源是怕影响到其他的程序。说简单点就是,日后真要服务器资源有问题要求程序优化,别找我,跟我程序没有关系。
Kylor 2014-04-22
  • 打赏
  • 举报
回复
引用 21 楼 sp1234 的回复:
所谓“全局变量”,在.net中可以使用一个static变量。例如
public static Dictionary<string, MyStateContainerType> dic = new Dictionary<string, MyStateContainerType>();
不过asp.net的数据会随时丢失(仅仅能够保证再一次会话的过程中间不会丢失,瞬间会话结束就可能丢失)。因此还是以数据库为基础来设计持久化数据更好。这其实就是asp.net的特点之一。
感谢您的回复,非常感谢。 static变量这个不考虑使用在cs程序下可以使用,但是bs就不行了。 只要值更改,全部用户的都更改了。所以这个肯定不考虑
H_Gragon 2014-04-22
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
引用 6 楼 yb871201 的回复:
服务器重启是没有问题。 因为用户只要重新登入了。 就相当于恢复全部的值。
呵呵。服务器会随时重启,而不是你来控制它何时重启。 看来你没有认真考虑过流程的影响,也没有认真研究过什么“资源压力”概念。
  • 打赏
  • 举报
回复 1
引用 楼主 yb871201 的回复:
但是不想用因为用户多了。怕服务器压力大。
这其实是个空话。你应该说明多少用户才算“多”,此时对服务器有多大“压力”。 如果说1000个用户、用了20M内存保存就算是对服务器压力大了,我看就别写程序了,搞文艺创作也行。
  • 打赏
  • 举报
回复
所谓“全局变量”,在.net中可以使用一个static变量。例如
public static Dictionary<string, MyStateContainerType> dic = new Dictionary<string, MyStateContainerType>();
不过asp.net的数据会随时丢失(仅仅能够保证再一次会话的过程中间不会丢失,瞬间会话结束就可能丢失)。因此还是以数据库为基础来设计持久化数据更好。这其实就是asp.net的特点之一。
romanticcrystal 2014-04-22
  • 打赏
  • 举报
回复
想来想去还是session好用些
Kylor 2014-04-21
  • 打赏
  • 举报
回复
引用 16 楼 u011154294 的回复:
可以用分布式缓存解决session的缺点
session 缺点不是主要的。 我是想知道,还有其他的办法实现吗?
webdiyer 2014-04-21
  • 打赏
  • 举报
回复
你可以试试nosql数据库,在内存中加载,速度很快的
Kylor 2014-04-21
  • 打赏
  • 举报
回复
Kylor 2014-04-18
  • 打赏
  • 举报
回复
引用 9 楼 loison 的回复:
写个公共父类,然后在父类中用个变量保存
这个在web程序中实现不了。
Kylor 2014-04-18
  • 打赏
  • 举报
回复
引用 7 楼 lwj7891875 的回复:
用txt文件 log 保存
这个感觉会出现大量的文件。这个不太好吧?
u011154294 2014-04-18
  • 打赏
  • 举报
回复
可以用分布式缓存解决session的缺点
Kylor 2014-04-18
  • 打赏
  • 举报
回复
引用 14 楼 a407121393 的回复:
[quote=引用 12 楼 yb871201 的回复:] 大家还有好办法吗?
用户端就去看session服务器就好了[/quote]session我知道可以实现,但是有没有更好的办法。 因为session用到服务器资源。我不想让服务器资源太多的浪费这上。
饕餮123 2014-04-18
  • 打赏
  • 举报
回复
引用 12 楼 yb871201 的回复:
大家还有好办法吗?
用户端就去看session服务器就好了
绿龙术士 2014-04-18
  • 打赏
  • 举报
回复
querystring
Kylor 2014-04-18
  • 打赏
  • 举报
回复
大家还有好办法吗?
Kylor 2014-04-17
  • 打赏
  • 举报
回复
引用 1 楼 yangniao 的回复:
用日志好不好
信息不回存储数据库中? 还有您说的用日志可以吗? 这个日志是什么意思?
加载更多回复(8)

62,072

社区成员

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

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

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

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