是这样的,我要做一个手机上的图片浏览器,可以在线浏览图片,服务器端采用Tomcat+servlet的方式处理通信逻辑,数据库采用mysql,并打算采用memecached做缓存(手机和服务器之间有好多xml文件,而且这些文件内容并不经常改变) ,但是我不太清楚图片在服务器端怎么存储?直接放到硬盘上?还是放到mysql里面?放到mysql里面不太好组织,放到硬盘上的话也不好检索,并且硬盘的读取速度太慢,可能会降低服务器性能,我希望能够快速检索图片并且快速读取图片数据(图片数量比较大,几十万的样子,单个图片1M以内),能够将图片缓存在内存中呢?但是我觉得这样不太现实,不知道大公司的图片在服务器端是怎样存放和组织的,也不知道他们是怎样索引和读取的。能够给小弟提示点方法和解决方案?这是小弟第一次做手机和服务器整体架构,好多没有接触到,知识面比较窄,希望大家多提建议,多给指点,先谢谢大家了!!!
图片放在某个磁盘阵列(服务器)上,然后数据库存储图片名字,读取的时候服务器地址加上图片名字就可以了。######1,图片放磁盘就好。2,规划好图片的分类。不要让一个目录图片过多。3,直接让nginx apache作为前端图片访问缓存就好。######@weiwotianyuan 没用过mongodb,呵呵,不做评价。######但是好像的确有用mongodb去做图片服务器的,但是硬件必须要投入,因为mongodb还不是纯文件数据库,是内存映射文件的,你怎么看?######@weiwotianyuan 千万不要把图片存放在数据库中。。。。。######了解一下,有没有必要用mongodb来存放图片呢?######图片的链接地址放到数据库,图片放到磁盘,你需要注意的是,一个文件夹下的文件不能太多,一个文件夹下的文件夹也不要太多,举例,你启用一个二级域名img1.abc.com,此域名根目录下放300个文件夹,每个文件夹下放300个文件,算来就可以存放9W个图片文件,这样检索非常快,你完全不用担心,当然,你觉得9W个文件太少了,你可以再加一级,就是2700万个图片文件,这样检索也是完全没有问题的。当然,最好就是2级就够了,9W个文件,作为一组,你可以再启动img2.abc.com域名,这个域名根目录下也能存放9W个文件,这样不是很好吗?######你解析的又细又好,我现在打算用第三方云存储来做,就不用自己解决CDN的问题了,谢谢你的答复。能否推荐一下哪个云存储比较好呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。