缩短Redis密钥

rbl8hiat  于 2023-05-16  发布在  Redis
关注(0)|答案(1)|浏览(88)

我有以下问题:我想得到一些Redis密钥的较短版本。部分键是倾向于大量重复的字符串。这组重复字符串是有限的。
示例:

  • 有些1.重复3.字符串3..
  • Some2.Repeating2.String1..
  • 有些3.重复1.字符串2..
  • 有些3.重复1.字符串2..
  • 有些2.重复3.字符串1..
  • Some1.Repeating1.String1..
  • 有些1.重复3.字符串3..
  • 有些2.重复3.字符串1..
  • ...

我想把钥匙弄短一点,正考虑把它的一部分散列。对于第一个密钥,散列部分将是Some1.Repeating3.String3..可能使用SHA 2。
在散列之后,我得到了一些我想表示为字符串的字节,这样我就可以与键的其余部分连接起来。当把这个字节数组转换回字符串时,我应该使用什么编码?我在.NET环境中,我正在考虑使用Unicode。这是个好主意吗?我想最小化存储此密钥的内存。
在这里和那里阅读,我遇到了提到将字节数组转换为Base64表示的地方,但这使得打印字符的结果比输入更长。
我想这里真实的的问题是,即使Unicode在屏幕上打印时生成的符号更少,存储它们所需的空间是否比存储其他编码所需的空间更少?正在阅读Jon Skeet的articlemsdn,这似乎表明Unicode将是一个安全的赌注。
--所以我排除了这个想法:完全去除密钥的第一部分不是一种选择,因为“真正独特的部分”是用户提供的,这可能导致冲突。
其他想法或指针?

5sxhfpxr

5sxhfpxr1#

为什么不使用GUID https://learn.microsoft.com/en-us/dotnet/api/system.guid.newguid?view=net-7.0
提供复制和粘贴功能的关键,或使用网址的网页作为关键,如果你有paginatgion

相关问题