请教一个数据在内存中的存储问题 多谢
有一个应用户是根据IP做限制,比如:一个页面同一IP在一定时间内只能访问一次,我把IP信息信息保存在HashTable中,但是随着访问量的增加HashTable占的内存太多了,帮忙提个建议,怎么在内存中保存这个信息会省点内存呢,多谢
------解决方案--------------------不会
但感觉可以存到数据苦里
------解决方案--------------------使用字典树来压缩存储。
------解决方案--------------------我觉得果断存数据库啊
------解决方案--------------------1. hashtable 本来就是一个散列函数,使用的空间大于实际空间,比较占内存。
2.ip地址如果用string保存会比较占内存,你可以写一个struct,里面用4个byte表示,这样能省不少空间。
最好用数据库保存。
------解决方案--------------------清一次就找不到比较的对象了,而且频率这么高 一天一次
这样背离需求感觉就好了。
数据跑的速度或许比你想象中的快
------解决方案--------------------一个ip访问结束后要清除。。这样数据量就少了
------解决方案--------------------如果是IPv4可以转成uint,否则需要4个uint的struct。
内存不足应该使用优先队列,数据被淘汰并且在有效时间范围内的话导入数据库中。