如何在redis中最佳地存储字节矩阵以便快速实时访问?

时间:2017-06-12 05:06:15

标签: redis real-time multiplayer

我有一个128 x 1048576字节矩阵,几个客户端可以快速读取和写入字节。可以认为该矩阵代表图像的像素。

此外,客户需要能够在扫描整个数据集的一部分时读取该矩阵的整个128 x 128个扇区。

我有一些使用redis的潜在解决方案:

  1. 为图像的每个像素提供自己的密钥,并要求客户端进行128 x 128次读取以获取每个扇区。

  2. 创建8192个哈希值以表示图像的每个扇区。每个扇区中的像素将表示为这些哈希中的字段。这意味着每个哈希将具有128 x 128个字段。

  3. 在这两个解决方案中,哪个更符合我的要求?

    此外,在每个键/字段中存储多于1个像素会有什么好处吗?如果是这样,我如何确定每个数据点存储的最佳字节数? (这会降低我的读/写精度,但也减小了键空间的大小)

    如果您想到使用redis群集的更好的解决方案,或者根本不使用redis,请不要犹豫,提及它。

    提前致谢, DOM

1 个答案:

答案 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>