Redis如何做内存优化?

Redis如何做内存优化?

1、缩短键值的长度

缩短值的长度才是关键,如果值是一个大的业务对象,可以将对象序列化成二进制数组;

首先应该在业务上进行精简,去掉不必要的属性,避免存储一些没用的数据;

其次是序列化的工具选择上,应该选择更高效的序列化工具来降低字节数组大小;

以JAVA为例,内置的序列化方式无论从速度还是压缩比都不尽如人意,这时可以选择更高效的序列化工具,如: protostuff,kryo等
2、共享对象池

对象共享池指Redis内部维护[0-9999]的整数对象池。创建大量的整数类型redisObject存在内存开销,每个redisObject内部结构至少占16字节,甚至超过了整数自身空间消耗。所以Redis内存维护一个[0-9999]的整数对象池,用于节约内存。 除了整数值对象,其他类型如list,hash,set,zset内部元素也可以使用整数对象池。因此开发中在满足需求的前提下,尽量使用整数对象以节省内存。

3、字符串优化

4、编码优化

5、控制key的数量

亲爱的,你要努力,你想要的的,你要自己给自己。------酷酷的韩

相关推荐
Allen Bright20 分钟前
【MySQL基础-20】MySQL条件函数全面解析:提升查询逻辑的利器
数据库·mysql
Justice link1 小时前
企业级NoSql数据库Redis集群
数据库·redis·缓存
爱的叹息1 小时前
主流数据库的存储引擎/存储机制的详细对比分析,涵盖关系型数据库、NoSQL数据库和分布式数据库
数据库·分布式·nosql
XiaoLeisj1 小时前
【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法
xml·java·数据库·spring boot·sql·intellij-idea·mybatis
dleei2 小时前
MySql安装及SQL语句
数据库·后端·mysql
信徒_2 小时前
Mysql 在什么样的情况下会产生死锁?
android·数据库·mysql
嘴对嘴编程3 小时前
oracle数据泵操作
数据库·oracle
爱的叹息4 小时前
Spring Boot 集成Redis 的Lua脚本详解
spring boot·redis·lua
·薯条大王9 小时前
MySQL联合查询
数据库·mysql
morris13111 小时前
【redis】redis实现分布式锁
数据库·redis·缓存·分布式锁