在上一篇我们详细介绍了Redis哈希类型的使用命令及内部编码,那么在这一篇中,我们将了解了解Redis哈希类型的实际使用场景。大家都知道Redis最核心功能就是性能比较高,因为是它是将数据存储到内存中的,而这是传统的关系型数据库所不具备的。用一句通俗的话来形容关系型数据库和Redis哈希类型的关系就是关系型数据库中一条记录相当于Redis哈希类型一个key。
当然我们也可以用字符串类型来存储,但字符串类型相比哈希类型来说,并不直观,并且在更新上也不便捷。因为字符串类型和哈希类型相比就相当于关系型数据库中一条记录中的一个字段。但在实际的开发中,为了减少Redis中key的个数,通常来说我们并不会为每个字段创建一个key,而是将一条数据或者一批逻辑数据,通过序列化的方式保存到一个key中,然后在更新的时候,在通过反序列化来更新数据。
而将数据保存到Redis哈希类型中则不会这么麻烦,因为Redis哈希类型可以直接修改field。除此之外Redis哈希类型和传统的关系型数据库相比,还有一个好处,就是Redis哈希类型,可以支持不同的key中包括不同的field。而在传统的关系型数据库当中如果新添加字段,则所有记录都有包括这个新字段,即使这条记录用不到这个字段。当然关系型数据库也有关系型数据库的好处,它可以做很多复杂式的关联查询,在一点上Redis哈希类型则比较困难。
下面我们通过下图来直观的感受一下关系型数据库和Redis哈希类型的区别。
下面我们看一下在使用Redis哈希类型的注意事项。
在实际的开发中为了不让Redis占用内存较大,所以在使用Redis哈希类型的时候,尽量不要创建过多的键。
我们知道Redis哈希类型的内部编码有ziplist和hashtable两种,并且在符合某些条件的情况下,这两种编码会自动转换。当Redis哈希类型的内部编码变成hashtable时,会比ziplist更消耗内存,在这一点要特别注意。
领取专属 10元无门槛券
私享最新 技术干货