Redis学习之空间节省
我们知道Redis是一个基于内存的数据库,所有的数据都存储在内存中,所以我们需要学习如何优化存储,用最小的代价得到最好的性能。
在使用Redis的过程中,我们可以使用下面的方式来节省空间:
一.精简键名和键值
这是一种很直观的减少内存占用的方式,这种方式的目标是:用最简洁的名称表达最好的效果。切忌为了单纯的节省空间而使用难以理解的键名。
二.内部编码优化
1.概念了解
这种方式是根据Redis内部编码规则来节省空间,Redis为每种数据类型都提供了两种内部编码方式,我们以散列类型为例:
散列类型是通过散列表实现的,它的优势是在数据很多的时候以优越的时间复杂度查找指定数据。
但是当键中的元素很少的时候,它的性能并不比普通的查找方式高所以这种情况下Redis会采用一种更为紧凑但性能较差的普通内部编码方式。
内部编码方式的选择对于开发者来说是透明的,Redis会根据实际情况自动调整,当键中元素变多时Redis会自动将该键的内部编码方式转换为散列表。
如果想查看一个键的内部编码方式我们可以使用OBJECT ENCODING命令来执行:

2.基本知识了解
Redis的每个键值都是使用一个redisObject结构体保存的,redisObject的定义如下:
type struct redisObject

浙公网安备 33010602011771号