开发者社区> 问答> 正文

服务器如何保存图片信息?:报错

是这样的,我要做一个手机上的图片浏览器,可以在线浏览图片,服务器端采用Tomcat+servlet的方式处理通信逻辑,数据库采用mysql,并打算采用memecached做缓存(手机和服务器之间有好多xml文件,而且这些文件内容并不经常改变) ,但是我不太清楚图片在服务器端怎么存储?直接放到硬盘上?还是放到mysql里面?放到mysql里面不太好组织,放到硬盘上的话也不好检索,并且硬盘的读取速度太慢,可能会降低服务器性能,我希望能够快速检索图片并且快速读取图片数据(图片数量比较大,几十万的样子,单个图片1M以内),能够将图片缓存在内存中呢?但是我觉得这样不太现实,不知道大公司的图片在服务器端是怎样存放和组织的,也不知道他们是怎样索引和读取的。能够给小弟提示点方法和解决方案?这是小弟第一次做手机和服务器整体架构,好多没有接触到,知识面比较窄,希望大家多提建议,多给指点,先谢谢大家了!!!

展开
收起
kun坤 2020-06-07 16:59:44 722 0
1 条回答
写回答
取消 提交回答
  • 图片放在某个磁盘阵列(服务器)上,然后数据库存储图片名字,读取的时候服务器地址加上图片名字就可以了。######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的问题了,谢谢你的答复。能否推荐一下哪个云存储比较好呢?

    2020-06-07 16:59:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载