大概功能就是,网站开始运行后,Global里启动了一个Timer定时器。
每小时整点,从数据库取出数据(其中有一个字段是在此数据取出后,随机取值赋值)。
这数据在内存里面,字段的值会根据情况改变,且不会更新到数据库。而每个用户登录后,都将这个数据展示到前台(且前台用ajax不时地请求,保证前台的数据跟着内存里的数据改变。)。请问下该如何存储这个数据。
方法一:将数据存入一个全局静态类里的静态对象中。
方法二:将数据存入Cache。
方法三:使用redis memcached第三方缓存服务现在有疑问的是,不知道静态对象会不会被回收?
或者不同用户登录,会不会产生不同(重新生成随机值)的数据?看到的数据会不会不一样?
静态对象是唯一的吗?是所有用户都共享同一个的吗?
或者使用Cache比较合适。

解决方案 »

  1.   

    看你数据,如果数据量不大的话,static即可,如果你了解gc的话,就知道它是不会被回收的,如果你没用threadstatic特性的话,所有用户都是用的同一个静态对象
      

  2.   

    Cache吧
      

  3.   

    首先你要了解他们的特性
    单台服务器,对数据存储要求不高,数据比较简单,就直接用静态对象;
    单台服务器,对数据存储有严格要求或数据较为复杂,就用Cache;
    多台服务器组成的应用集群,就要使用redis memcached;