是否可以压缩随机URL
https://a.scdn.gr/images/sku_main_images/014650/14650949/20180416114151_amd_ryzen_5_2600.jpeg
变成更小的文本?
ta7f^*(GD&FY6FTGsdfsfYHU(*
如果您必须处理数百万个共享某些部分的URL,您将如何压缩它们?
https://a.scdn.gr/images/sku_main_images/014650/14650949/20180416114151_amd_ryzen_5_2600.jpeg
https://a.scdn.gr/images/sku_main_images/014650/14650949/20180416114151_amd_ryzen_5_2700.jpeg
https://a.scdn.gr/images/sku_main_images/014650/14650949/20180416114151_amd_ryzen_5_2700x.jpeg
...
我的方式是:
Base-10最多可以用4位数字计数9999。
1个字节可以表示256个符号
Base-256最多可以用4位数字计数4,294,967,296。
例如,“ http:// ”位于数字 0 ,“ a.scdn.gr ”位于数字 56762835 ,在base-256中表示为%&r 。
例如,
https://a.scdn.gr/images/sku_main_images/014650/14650949/20180416114151_amd_ryzen_5_2700.jpeg
转换为7部分:
0/&^T/&^Y/&^e/*JE/(E*U/*EHG
我将需要分别提取7个部分,但是我不在乎,因为我一次将对几个URL进行关键处理,问题是存储它们。
我将保存一百万次文本“ &^ T / ”,并保存一次文本“ index:&^ T,content:a.scdn.gr / ”,而不是保存一百万次文本“ a.scdn.gr / ”
〜50%压缩。
示例
1个字节 8位 256个符号
以10为基数:1943 = 0x10 ^ 4 + 1x10 ^ 3 + 9x10 ^ 2 + 4x10 ^ 1 + 3x10 ^ 0 =“ 1”,“ 9”,“ 4”,“ 3”
base-256:1943 = 0x256 ^ 3 + 0x256 ^ 3 + 0x256 ^ 2 + 7x256 ^ 1 + 151x256 ^ 0 =“ $”,“ *”($ = 7,* = 151)