我有一个(Django) web应用程序,需要构造大型(numpy)数组,比方说每个向量1MB。它可以工作在几个进程上(由Apache/mod_wsgi派生)。
目前,我使用的是内存缓存,最简单的版本是全局变量。从缓存中检索数据是即时的--我所需要的一切。但是,每个进程都需要在自己的内存中复制缓存,并且是不可预测进程加载了数据,而哪个进程没有加载数据(我希望在启动时一次性加载它)。
我尝试过Memcached和Redis在进程间拥有一个共享缓存。两者都需要先序列化数据:字符串和ints。现在,当我想要读取一个向量时,反序列化大约需要10 s,对于在单击按钮后等待的用户来说,时间有点长。
难道没有任何解决方案可以同时在RAM中存储一些任意数据而不序列化到string,并在不同的进程之间共享它吗?(我对重启后的持久性不感兴趣)。
发布于 2016-03-24 18:30:55
Redis支持许多数据类型,包括原始字节。
字符串是最基本的Redis值类型。红宝石字符串是二进制安全的,这意味着红宝石字符串可以包含任何类型的数据,例如JPEG图像或序列化的对象。
Redis被证明是快速的,所以也许您的重点应该是一种高效的序列化格式,这种格式可以快速反序列化。
https://stackoverflow.com/questions/36204575
复制相似问题