0

跟进这篇文章:redis store 128 bit number

如何使用 ipv6 地址进行字典搜索。

如果我这样使用它:

ZADD index 0 8000::/24
ZADD index 0 2001:db8:1f89::/48
ZADD index 0 2001:db9:1f89::/48
ZADD index 0 1234:5678:abcd:effa:4200:1972::/112

ZRANGEBYLEX index [2001:0db8:0000:85a3:0000:0000:ac1f + LIMIT 0 1
1) "2001:db8:1f89::/48"

但:

ZRANGEBYLEX index [2001:1db8:0000:85a3:0000:0000:ac1f + LIMIT 0 1
1) "2001:db8:1f89::/48"

一个主意 ?

4

1 回答 1

0

将 CIDR 转换为 IP 范围并添加到 ZSET 起始 IP。在添加 IP 之前,将其数字填充为零!示例:2001:db8:cafe:1:0:0:0:100 -> 2001:0db8:cafe:0001:0000:0000:0000:0100。

并使用“ZREVRANGEBYLEX key [2001:0db8:cafe:0001:0000:0000:0000:0200 - LIMIT 0 1”获取范围的起始 IP。

于 2019-04-04T06:30:36.193 回答