在项目中经常会遇到一个需求就是字符串和id的转换,比如标签和标签id。因为在存储系统里面存储字符串会比较浪费内存,而存储id会节省内存和提高效率。
问题分解
- 通过字符串获得id
- 通过id获得字符串
实现思路
通过字符串获得id
可以通过MD5等方法,获得一个整数值,然后到系统中去查,如果存在这个id就增加一个质数,再次查找,直到找到一个没有映射的id
通过id获得字符串
简单的将id和字符串存成hash,就可以很方便的查找了
这种实现思路的优点
- 只需要存储一份id到字符串的映射就可以了
- 方便扩容,增加hash容量就可以了