如何将数组存储为东京内阁的价值?

时间:2010-06-08 20:21:31

标签: tokyo-cabinet

有什么方法可以在东京内阁数据库中存储一组数字?例如,我有可预测的值数组,例如

1 => [1, 2, 444, 0.987],
2 => [2, 23, 123, -0.234],
3 => [3, 1, 34, 1.456]

我想将上述内容存储在TC固定长度db中。有没有办法将上面的数据存储为数组而不是字符串?

1 个答案:

答案 0 :(得分:1)

Tokyo Cabinet允许任意字节序列作为键和值,因此架构非常适合您。第一步是决定如何存储每个号码。这可以是float,double或fixed point(例如BigDecimal)。

然后,您决定如何序列化数组。这可能是连续的:

num => 1 2 444 0.987

TC值只是连接在一起的所有数值。例如。使用32位浮点数:

num => 0x 3f 80 00 00 40 00 00 00 43 de 00 00 3f 7c ac 08

另一种可能性是链表:

key => num next_key

1 => 1.1 2
2 => 2 3
3 => 444 4
4 => 0.987 0

您连接当前值和数组中的下一个键

这提供了链表的传统优点,包括轻松插入中间。