有些信息,比较常用,经常用,想要全部存储到内存中,而不是数据库中,可以说不是缓存,就是直接存在内存中,这样合不合适啊,5千条左右的数据,
还有,有没有什么工具,简单的小工具,不要太大的工具,能看看对象占用内存大小

解决方案 »

  1.   

    5k条数据 ,  要看你这些数据 有多少字了。 一个中文2字节。自己算算。另外 有相应的存储过程可以查看 占用内存的大小,Google下很多。
      

  2.   

    每条数据算有100个字符, 共200字节, 5000条为
    5000 * 200 Byte = 1000K = 1M
    一个程序增加1M的内存使用就能提高很多性能, 你说值不值呢?
      

  3.   

    看你5K每条占多少了。每条1K也就5M,值。
      

  4.   

    我做过:N台web app server+数据库双机热备,从数据库读出来cache在内存的数据是这么做的更新:
    1。web server启动的时候,配置一个servlet向数据库的某个表中register一个ip:port,并隔一段时间(比如1分钟)向数据库的表刷新一下last_valid_time表示服务器还活着(heartbeat,服务器有效性监控)。
    2。同一,另一个servlet开启一个进程,监控是否有别的web server向此发refresh命令。
    3。任意一个web server改变了数据库的数据(insert/update/delete),本身的cache是即时更新的,但其他的webserver不晓得,则查询1中所有活着的ip:port,循环向它的(2)对应的service发请求,告诉它要刷哪个cache。
    4。(2)对应的service接收到refresh请求,从数据库重新load数据。以上方法重新load时看web server之间的网络状况,会有延时,但没有找到更好的办法,只能凑合用。
      

  5.   

    内存缓冲,不要自己做了,有许多现成的Cache工具类,支持分布式。比如
    OsCache, jboss 的 ehcache 等