Closed fdreamsu closed 4 years ago
业务上场景上遇到需要以哈希值(md5/sha1)与其他字符串拼接作为键值,如果key可以实现二进制安全则可以使key的有效位数翻倍,即可以直接以hash值原文当做key,无需转成16进制再存。 也遇到了一些场景,key的前缀固定为int16或int32,然后需要遍历SwooleTable对某些前缀的值进行操作。目前的方案是将数字pack后再base64_encode,实现数字的定长。如果key可以实现二进制安全则就不用再base64多此一举了。
目前 key 就是二进制安全的
试了一下,get set等确实是二进制安全的,但通过Iterator遍历SwooleTable时获取到的key并不是二进制安全的,都在\0的位置被截断了
业务上场景上遇到需要以哈希值(md5/sha1)与其他字符串拼接作为键值,如果key可以实现二进制安全则可以使key的有效位数翻倍,即可以直接以hash值原文当做key,无需转成16进制再存。
也遇到了一些场景,key的前缀固定为int16或int32,然后需要遍历SwooleTable对某些前缀的值进行操作。目前的方案是将数字pack后再base64_encode,实现数字的定长。如果key可以实现二进制安全则就不用再base64多此一举了。