【问题标题】:redis ZRANGEBYLEX and ipv6redis ZRANGEBYLEX 和 ipv6
【发布时间】:2019-01-20 06:24:06
【问题描述】:

要跟进这篇文章: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】:

    将 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      相关资源
      最近更新 更多