繁体   English   中英

在应用程序中存储IP地址的最佳方法是什么?

[英]What is the best way to store ip addresses in application?

我正在开发基于Spring和JSF 2.0的应用程序。 需要记住特定IP地址的客户端在过去3分钟内尝试提交表单的次数。 如果在3分钟内记录了超过3次提交尝试,则应显示验证码。

我正在考虑使用ConcurrentMap<String, ConcurrentLinkedQueue<Long>>来存储ip地址( String )并在队列中提交时间(milis)( ConcurrentLinkedQueue<Long> )。 Quartz将以3分钟的间隔清理队列(将删除3分钟以上的milis)。 要检查是否显示验证码,我将检查队列大小是否> 3。

这是正确的方法吗? 你有更好的想法吗?

Java提供了一个用于存储IP地址的特殊类: java.net.InetAddress Long不同,除了32位地址之外,它还能够处理128位地址,并且就其使用的内存而言,它并不像String那样浪费,这在非常大量的情况下可能变得很重要。

就个人而言,我将我的IP存储为Longs而不是Strings。

您将看到性能提升。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM