This topic created in 4798 days ago, the information mentioned may be changed or developed.
大约有100万左右的小文件 是动态生成的.svg图像 每个小于4k 过期时间是86400秒
并发需求上不是很大 .svg的生成比较耗费资源 虽然耗时也就是0.02秒左右
为了不给系统留下隐患 还是需要缓存下
硬件上大约能拿出4G内存来存储
我只有使用memcachedb的经验
有人能给点建议,redis适合我的这个需求吗?
9 replies 1970-01-01 08:00:00 +08:00  | | 1 yuyuyu101 Mar 31, 2013 1 memcached对于大字符串效率更高 |
 | | 2 ElmerZhang Mar 31, 2013 1 直接用Memcached就可以了,反正内存够 |
 | | 3 thetcc Mar 31, 2013 1 小文件是多小?只要你存储的的内容不要超过实际内存,应该没什么问题。redis里单个value的最大值是512MB,所以你小文件是绝对不会超过的。redis的key,value都可以是二进制数据或字符串。 |
 | | 4 twm Mar 31, 2013 via iPhone 1 100w,小意思 |
 | | 5 ipconfiger Mar 31, 2013 1 你还不如直接/dev/shm来得直接简单点呢 |
 | | 6 Livid Mar 31, 2013 1 几个问题:
- 实际占用的内存会大于 4G - 如果超过可用内存,Redis 会直接崩溃 - 崩溃的时候可能会丢一部分数据 - 崩溃之后再重启时,会需要花一点时间将数据从磁盘恢复到内存中,数据越多,这个时间就越长 |
 | | 7 moyaya Mar 31, 2013 1 redis非常吃内存啊! |
 | | 8 lookhi Mar 31, 2013 1 并发需求上不是很大 .svg的生成比较耗费资源 虽然耗时也就是0.02秒左右
压力都不大啊,每次都动态生成吧。做最大1000个图片的缓冲队列就好了。 |
 | | 9 Tianpu Apr 1, 2013 感谢所有回复者 我也是印象中存在一个redis可能会崩溃的印象
查找一翻资料后 一开始使用文件存储 最终修改成mysql存储
文件存储是这样的结构: {basedir}/substr(crc32({name}),1,3)/{name}.svg 由于未知的原因,竟然偶尔会失败,不确定是硬盘缓存导致写入失败还是别的什么原因,总之产生了很诡异的错误,大致是文件写造成的,而且是比较随机的出现
然后又产生了别的需求 就修改成myisam存储了 目前还算稳定 暂时没有发现问题
我不介意丢失文件 反正恢复不麻烦 只是不想偶尔还要去检查下系统是不是完蛋了
楼上所有回复者已经送钱
谢谢 |