wangwenjun69 2011-03-14 22:55 采纳率: 0%
浏览 190
已采纳

关于缓存的问题

看了一些缓存的东西,但是我有些不明白的地方,向大家请教,比如现在有很多缓存解决方案,诸如oscache,ehcache等等,我使用过,主要是用来往磁盘持久化的,但是我看了很多的介绍,大多作为内存的缓存,包括apache的对象池等,我疑惑的内存的缓存,可以放在数组中或者容器中(list,map)这样可以满足内存的缓存啊!为什么那么多的框架还需要提供解决方案呢?请各位给一个让我明白或者恍然大悟的答案!谢谢各位高手了!

  • 写回答

5条回答 默认 最新

  • iteye_16421 2011-03-15 13:07
    关注

    关于这个问题要看你应用的场合,如果你的系统比较小,只一台服务器就能搞定,不需要分布式的,所要求的缓存也比较小,一台机器就有搞定,那你用map就行了,没必要用其它的缓存系统,用其它的缓存系统,反而效率更低。

    如果你的系统比较大,有多台服务器要需去共享缓存中的数据,那么你的缓存系统就需要基于网络连接方式完成服务,最好支持分布式,将来可以方便的扩展缓存大小,并且这些缓存系统提供了缓存的策略,无需你去释放内存,也不会存在内存溢出和内存泄露的问题。

    缓存系统都是作为数据库前端cache使用的。因为它比数据库少了很多SQL解析、磁盘操作等开销,而且它是使用内存来管理数据的,所以它可以提供比直接读取数据库更好的性能,在大型系统中,访问同样的数据是很频繁的,缓存系统可以大大降低数据库压力,使系统执行效率提升。

    另外,缓存系统也经常作为服务器之间数据共享的存储媒介,例如在SSO系统中保存系统单点登陆状态的数据就可以保存在缓存系统中,被多个应用共享。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。