我有一个128 x 1048576字节矩阵,几个客户端可以快速读取和写入字节。可以认为该矩阵代表图像的像素。
此外,客户需要能够在扫描整个数据集的一部分时读取该矩阵的整个128 x 128个扇区。
我有一些使用redis的潜在解决方案:
为图像的每个像素提供自己的密钥,并要求客户端进行128 x 128次读取以获取每个扇区。
创建8192个哈希值以表示图像的每个扇区。每个扇区中的像素将表示为这些哈希中的字段。这意味着每个哈希将具有128 x 128个字段。
在这两个解决方案中,哪个更符合我的要求?
此外,在每个键/字段中存储多于1个像素会有什么好处吗?如果是这样,我如何确定每个数据点存储的最佳字节数? (这会降低我的读/写精度,但也减小了键空间的大小)
如果您想到使用redis群集的更好的解决方案,或者根本不使用redis,请不要犹豫,提及它。
提前致谢, DOM
答案 0 :(得分:2)
听起来像是Redis的Bitfield数据结构的完美用例 - 它在Redis网站上完整记录:https://redis.io/commands/bitfield。
事实上,Reddit最近(4月1日)做了一个名为/ r / Place with Bitfield的惊人项目,听起来非常像你想要做的 - 这里有详细信息:https://redditblog.com/2017/04/13/how-we-built-rplace < / p>