背景
在数据量小或者只有int数据的时候,redis采用更紧凑的数据结构来保存数据
zset/hash --> ziplist
set(int) --> intset
这些特殊的数据结构是一整块内存,避免来内存分片,节省了内存,并且增加了cache命中,所以虽然算法复杂度变成了On,但其实更快了
使用bit操作
对于只需要flag的操作使用位掩码是最合算的
尽量使用hash
如果一个对象有n个属性,不要使用n个key/value,使用一个hash,带n个field更合适
编码key/value
在key或者value里面包含多个field,以节省key/value的数量
关于RSS
redis使用maclloc/free管理内存,这个内存不会马上返回os,等待下次直接使用。所以一个peak memory高的redis RSS高是正常的