9.理解内存
1.内存消耗
- 内存消耗划分
- 碎片
2.内存管理
2.1内存回收策略
惰性删除+定时任务删除
2.2内存溢出控制策略
参考案例哈哈(正好用到了知识):
https://www.oschina.net/question/2312022_2304666#comments
LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据。
3.内存优化
3.1redisObject对象
3.2缩减键值对象
- 序列化
- 压缩
3.3共享对象池
3.4字符串优化
3.5编码优化
此处列举笔者工作中的项目:
项目要存几十万个hash类型数据,用1000个相同类型hash实测了下(修改编码条件后debug reload即可),采用ziplist消耗内存95MB,采用hashtable消耗约150MB。
当然这是以牺牲操作耗时为代价:
总结