Redis IPv6 support?

1,371 views
Skip to first unread message

Dan Liang

unread,
Jun 19, 2013, 5:13:17 PM6/19/13
to redi...@googlegroups.com
We have been using redis 2.6 in our system and it works very well. At some point in the near future we'd need to move over to IPv6. Wondering what's redis IPv6 support story? I'm not able to find anything at redis.io. The questions are:
  • Can redis server run on an IPv6 host?
  • If redis server must run on an IPv4 host, can it accept requests from an IPv6 client?
  • Any certification tests done for the IPv6 support?

Thanks in advance,

Dan

Jan-Erik Rediger

unread,
Jun 20, 2013, 10:43:31 AM6/20/13
to redi...@googlegroups.com
Currently redis has no IPv6 support. There is still an open pull request here: https://github.com/antirez/redis/pull/61. Antirez wants to work on it, but only after 2.8 is released. 

Mark Martinec

unread,
Jun 20, 2013, 10:09:12 AM6/20/13
to redi...@googlegroups.com
Dan Liang wrote:
> We have been using redis 2.6 in our system and it works very well. At some
> point in the near future we'd need to move over to IPv6. Wondering what's
> redis IPv6 support story? I'm not able to find anything at redis.io. The
> questions are:
> - Can redis server run on an IPv6 host?
> - If redis server must run on an IPv4 host, can it accept requests from
> an IPv6 client?
> - Any certification tests done for the IPv6 support?

The lack of IPv6 support is the reason why we can't currently choose Redis
in our setup, as some of the clients are IPv6-only (either in kernel, or
just without a configured IPv4 address and network). Otherwise I'm very
much impressed with redis (and its Lua scripting) and it works very well
and fast in a test environment.

I realize the support for IPv6 is targeted for the 2.8 release, but
it seems it has stalled somewhat.

There are three related pull requests:

#60 Use getaddrinfo(3) and inet_ntop/inet_pton
#61 Add support for IPv6
and a somewhat related:
#939 Support for binding to more than one IP address

I tried to cherry-pick these changes into 2.6 or to unstable branches,
or at least tried to install the #60 fork, but I didn't have much
success because code seems to have diverged somewhat, and also due
to my lack of skills with git. Certainly not something I'd want
to run in a production environment.

Now that the 2.6.14 is out, I wish these changes were pulled in
into either 2.8 or into unstable by a skillful hand. It's alright
if it's not fully polished and if perhaps it lacks full support by
sentinel / cluster for the time being. It's much easier to add missing
features to an already usable version, then to work on a stale branch,
with a potentially dubious future.

I have some concerns with some details in #61 (like an unnecessary
introduction of a 'port6' setting - a port number is a port number,
same in INET and in INET6). Also I'd be much happier if 'bind' and
'bind6' and 'unixsocket' were merged into a single setting, which
(based on the #939 request) it may look like:

port 6379 # a default port number, unless overridden in 'listen'
listen [::1]:6789 127.0.0.1 /tmp/redis.sock 172.16.0.9:444 /var/x/y.z

... although this is mostly a detail that can be discussed and
sorted out after a merge of the baseline bulk of necessary changes.

I cheer to the already very good project, hoping to make it even
better. I'm willing to partipate in testing and sorting out detail,
just need a stable base for a start.

Regards
Mark


Salvatore Sanfilippo

unread,
Jun 20, 2013, 10:52:53 AM6/20/13
to Redis DB
Hello, thanks for the feedbacks,

I really hope we'll have IPv6 support in a reasonable amount of time,
like to add it while 2.8 will be in release candidate state during
this summer.
Currently there is as you said no "no-brainer merge it" PR available,
there is to rework bits, to adapt it to Sentinel and Cluster. It is a
non-trivial amount of absolutely trivial work... so the time is the
main issue, and also, well, the correctness as it's pretty obvious
this should work well.

News soon I hope, currently I'm addressing 2.8 issues one afte the
other to reach RC1 asap.

Salvatore
> --
> You received this message because you are subscribed to the Google Groups "Redis DB" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+u...@googlegroups.com.
> To post to this group, send email to redi...@googlegroups.com.
> Visit this group at http://groups.google.com/group/redis-db.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>



--
Salvatore 'antirez' Sanfilippo
open source developer - GoPivotal
http://invece.org

Beauty is more important in computing than anywhere else in technology
because software is so complicated. Beauty is the ultimate defence
against complexity.
— David Gelernter

Dan Liang

unread,
Jun 20, 2013, 7:10:18 PM6/20/13
to redi...@googlegroups.com
Thanks for the update folks. Since the redis server is by all means a back-end server, we can leave it on IPv4 only and turn on IPv4/v6 dual stack on those external facing servers - so they talk either IPv4 or IPv6 outside, but IPv4 only inside. This will work as long as we have totally control of the cloud networking. It will not work when we are selling the solution for customers to build on their cloud.

Thus the question - we need IPv6 support on the roadmap. And glad to know that it is coming.
Thanks!
Dan
Reply all
Reply to author
Forward
0 new messages