【问题标题】:How do I store unsigned integers in Cassandra?如何在 Cassandra 中存储无符号整数?
【发布时间】:2015-05-28 01:47:32
【问题描述】:

我通过 Datastax 驱动程序将一些数据存储在 Cassandra 中,并且我需要存储无符号的 16 位和 32 位整数。对于无符号 16 位整数,我可以轻松地将它们存储为有符号 32 位整数并根据需要进行转换。然而,对于无符号的 64 位整数,我不知所措。我可以将它们存储为字符串并解析它们,或者我可以将它们存储为字节数组。我可以将它们存储为 64 位有符号整数,并执行从和转换为 64 位无符号整数所需的位操作。

推荐的方式是什么?

【问题讨论】:

  • varintdecimal 怎么样?那些不是 .net 提供的吗?
  • cassandra 不支持 uint 真是太疯狂了。我想这表明 uint 在现实世界的情况下是多么不常用,否则他们会有足够的压力来支持它。

标签: c# .net cassandra data-modeling


【解决方案1】:

您可以使用 Cassandra 的 varint,在 C# 驱动程序中表示为 BigInteger

你可以将explicit conversionsBigInteger改为ushortulong

【讨论】:

  • 这可能是最好的方法,但BigInteger 相对于ulong 具有性能影响:(
  • 你可以使用long,然后使用unchecked { ulong value = (ulong) longValue; }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2011-04-19
  • 1970-01-01
  • 2014-07-22
  • 1970-01-01
相关资源
最近更新 更多