Redis——存储优化

本文探讨了Redis中的对象存储方式,从序列化对象到利用Hash数据类型优化存储,以节省内存并提高效率。同时,针对大key问题提出了优化方案,包括分拆key-value对、使用multiGet及调整数据结构,以减少单次操作压力和提高系统性能。
摘要由CSDN通过智能技术生成

Redis中不支持嵌套数据结构,只支持字符串类型的k-v数据结构

1.对象存储

  1. 在项目中以前对对象的存储才用的是序列化操作,每次存入Redis都需要先将对象序列化,然后在存入,取出时再反序列化。
    优点:虽然需要序列化和反序列化,但是可以直接操作对象的方法,方便快捷
    缺点:需要序列化和反序列化,并且修改单个字段,需要获取整个json,修改后,序列化保存,浪费空间,浪费时间,效率低

  2. 后来为了节约内存空间,以及进度类需要实时更新其中某个字段,而非全部,所以为了提升效率,于是采用redis的hash数据类型重构。Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
    考虑到实际情况,比如多用户任务进度信息,需要userId与taskName唯一标志一个进度信息,因此对应的进度key为:userId:taskName value:cnt、count、finish、breakdown
    在这里插入图片描述

    另外需要快速查询每个用户对应的所有进度信息,因此还需要存储每个用户所对应的的任务名

在这里插入图片描述<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值