作为使用“ C”语言开发的应用程序的一部分,客户端将发送带有两个16字节值和一些数据的请求。每个客户端UID是两个16字节值之一,另一个是某个随机唯一对象UID。因此,服务器将从客户端接收以下种类的数据:
来自客户端1: <客户端UID1,obj UID1,随机数据>
来自客户端2: <客户端UID2,obj UID4,随机数据>
来自client3: <客户端UID3,obj UID5,随机数据>
服务器收到上述信息后,需要将它们存储在一种表中,并为每个此类请求响应一个8字节的唯一ID。客户端将使用
由于收到的此类请求数量巨大,因此我无法将它们存储在数组中并将索引用作8字节的唯一ID。也会迫使我进行线性搜索以识别匹配的
那么,我能知道如何高效地组织数据,以便能够使用8个字节的唯一ID和
答案 0 :(得分:0)
我认为,您需要使用hash-table,并在此处存储/查找数据。
添加或更新记录的速度非常快。
如果使用double hashing算法,则可以将哈希表索引用作unique 8-byte ID
,以直接访问表单元而不进行搜索。当然,该索引将少于8个字节,但是我认为,您可以将其填充0左右。
您可以在emerSSL项目中获得我自己的双哈希实现。