簡體   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