我对redis是新手,我认为我对redis有一个很好的用例。我想要做的是在短时间内缓存一个mp3文件。这些MP3s的侧面大于2米,但我也只说在任何时候都可以存储5-10。他们的TTL也会很短,分钟,而不是小时,等等。
(磁盘持久性不是一个选项)。
所以,我想知道的是,我是否需要花哨一下,用Base64把mp3存储起来呢?或者我可以简单地设置keyvalue=bytearray[]吗?
这个redis命中将来自一个web服务,而web服务则从磁盘点击的下游服务获取它的数据。因此,如果您愿意的话,我要做的就是在中间件上缓存mp3文件一小段时间。我不需要对每一个文件都这样做,只是那些大于2m的文件,这样我就不需要继续转到下游服务器并再次从磁盘请求文件了。
谢谢!
尼克
发布于 2016-02-23 08:09:34
您当然可以存储它们,而对于redis来说,2MB没有什么可存储的。
Redis是二进制安全的,您不需要base64您的数据,只需通过字节数组存储在您喜欢的客户端。
我想做的一件事(用2Mb的数据来说可能不值得,但如果我要存储视频文件)是存储文件序列块,而不是一次加载所有的东西。如果你的应用程序不能同时在内存中保存很多文件,而且文件也不是那么大,那就不值得了。但是,如果您期望具有较高的并发性,请考虑这一点,因为这将节省应用程序内存,而不是红色内存。
您可以通过多种方式这样做:
GETRANGE读取块。例如:
GETRANGE myfile.mp3 0 10000
GETRANGE myfile.mp3 100000 200000
... #until you read nothing of coursehttps://stackoverflow.com/questions/35567696
复制相似问题