分布式缓存Redis之内存优化与性能优化

Redis作为内存数据库,所有数据都从内存中拿,省去读写磁盘的消耗(持久化是由fork子进程处理,主服务器不受影响)

响应速度极快,但是我们不可能将所有的数据都读到内存中,所以内存资源显得非常可贵,我们就要优化存储结构。

一、尽量使用hash

 COC中每个客户会对应上千个标签,每个客户就是一个对象,我们如何存储它?


  1. 序列化对象:要求在redis存储前对象进行序列化操作,每次取出后还要执行反序列化操作,开销太大;如果只想取对象的某一个值,都需要将整个对象取出,还要解决并发、数据一致性、加锁等复杂问题。
  2. K-V模式: phone字段冗余;
  3. HASHMAP: phone字段只出现一次,避免数据冗余。

所以用hashmap,让phone字段只出现一次,避免数据冗余。

二:Redis内存回收策略

Redis提供了内存回收策略,根据使用的情况可以选择适当的回收策略,比如过期数据清除,expire设置数据过期时间;

Redis提供内存共享策略,服务器启动时,会自动创建0-9999的数字对象,其他地方使用可以直接饮用。

本质:对内存的操作,其实是在每一个redis对象结构内都有一个count的属性,该属性记录了这个对象被引用的次数,如果为0,那么在内存回收时将回收该空间。




猜你喜欢

转载自blog.csdn.net/gentelyang/article/details/80175086