Loading

Redis学习之空间节省

我们知道Redis是一个基于内存的数据库,所有的数据都存储在内存中,所以我们需要学习如何优化存储,用最小的代价得到最好的性能。

在使用Redis的过程中,我们可以使用下面的方式来节省空间:

一.精简键名和键值

这是一种很直观的减少内存占用的方式,这种方式的目标是:用最简洁的名称表达最好的效果。切忌为了单纯的节省空间而使用难以理解的键名。

二.内部编码优化

1.概念了解

这种方式是根据Redis内部编码规则来节省空间,Redis为每种数据类型都提供了两种内部编码方式,我们以散列类型为例:

散列类型是通过散列表实现的,它的优势是在数据很多的时候以优越的时间复杂度查找指定数据。

但是当键中的元素很少的时候,它的性能并不比普通的查找方式高所以这种情况下Redis会采用一种更为紧凑但性能较差的普通内部编码方式。

内部编码方式的选择对于开发者来说是透明的,Redis会根据实际情况自动调整,当键中元素变多时Redis会自动将该键的内部编码方式转换为散列表。
如果想查看一个键的内部编码方式我们可以使用OBJECT ENCODING命令来执行:
在这里插入图片描述
2.基本知识了解

Redis的每个键值都是使用一个redisObject结构体保存的,redisObject的定义如下:

type struct redisObject
posted @ 2020-11-11 15:38  文牧之  阅读(23)  评论(0)    收藏  举报  来源