redis ZRANGEBYLEX和ipv6

问题描述 投票:0回答:1

关注这篇文章: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"

一个主意 ?

redis ipv6 int128
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.