在使用Redis的过程中,可以从以下几个方面进行记忆体的优化
- 控制key的长度,在保持key的名字有意义的前提下,key越短越好
- 尽量让Redis Server使用ziplist来存储数据结构,下面是Redis定义的一些常量。在满足这些常量的情况下,数据结构将以ziplist来存储
- hash-max-ziplist-entries 64
- hash-max-ziplist-value 512 ( 或者关系,entries count <= 64 or 每个entry size <= 512 )
- list-max-ziplist-entries 512
- list-max-ziplist-value 64
- zset-max-ziplist-entries 128
- zset-max-ziplist-value 64
- zset-max-inet-entries 512
- 善用REDIS_SHARED_INTEGERS ( default value is 10,000 )。小于10,000的整数值放在共享pool,因此可以反复使用,而不是每次都分配内存。修改该值,需要重新编译(in redis.h )
- 使用bitmap结构进行对bit内容进行存出,对于用0/1表示的数据,这个就非常合用
- HyperLogLogs