前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis存对象和存Json的思考

Redis存对象和存Json的思考

原创
作者头像
查拉图斯特拉说
发布2024-02-12 22:29:57
2840
发布2024-02-12 22:29:57
举报
文章被收录于专栏:后端架构后端架构

前言

日常使用的还是很多的,经常会用radis存储一些json数据,对象数据,但是这样偶然间会发现不同的项目根据习惯的使用不同,有些人喜欢存对象,有些人喜欢存json。其实存json和存对象本质上到redis这边而言,它都是进行一个字符串的存储,只是会多一个类路径,然后就操作方面的区别。

存储逻辑

在Redis中存储对象和存储JSON数据都是常见的用法。

1. 存储对象:您可以将对象序列化为字节流(如pickle序列化)然后存储在Redis中。这样做可以保留对象的结构和类型信息,但在存储和检索时可能需要更多的处理。在Python中,您可以使用pickle或其他序列化库来序列化对象。

2. 存储JSON:另一种常见的方法是将数据转换为JSON格式,然后存储在Redis中。这种方法更通用,因为JSON是一种轻量级的数据交换格式,易于处理和解析。您可以使用各种编程语言中的JSON库来处理JSON数据。

存对象

有下面这张图可以看出。下图存的是一个对象,但是它里面却包含了一个文件的路径。

存对象的优点缺点

在日常的存对象当中,发现不需要像json字符串一样需要进行反序化,反序列化来反序列化去。但是同样的你存储的对象,你的类名不能改,你的路径也不能改,一旦改了,他就无法做一个存储读取,这就是一个问题。

另外如果你设置的缓存是一个指定时间范围内的缓存倒也没问题,如果有一些缓存可能存储的时间长,一旦你进行一个版本发布类名改了但是缓存没有失效。这时缓存就会变成一个大问题,你还需要定期定期的指定去清理。

存储对象的优点:

  1. 保留了对象的结构和类型信息,可以直接反序列化为原始对象。
  2. 更适合存储复杂的数据结构,如自定义类实例或嵌套对象。

存储对象的缺点:

  1. 可能占用更多的存储空间,因为序列化后的对象通常比JSON数据更大。
  2. 在存储和检索时可能需要更多的处理,如序列化和反序列化的过程可能会增加开销。

存储JSON的优点:

  1. JSON是一种通用的数据格式,易于处理和解析。
  2. 占用的存储空间通常比存储对象更小。

存储JSON的缺点:

  1. 丢失了对象的结构和类型信息,需要在反序列化后手动处理数据类型。
  2. 不适合存储复杂的对象结构,可能需要额外的处理来处理嵌套数据。

总结

无论是存储对象或者存储json这个东西不能一概而论。还是要根据使用场景来如果没有针对特殊的业务,进行一个处理。我感觉他们之间的性能和存储也没有特别大的区别。还是那句话。当数据量小的时候,什么都不是问题。当数据量变得很大的时候,什么都是问题。

最后

点赞关注评论一键三连,每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 存储逻辑
  • 存对象
  • 存对象的优点缺点
    • 存储对象的优点:
      • 存储对象的缺点:
        • 存储JSON的优点:
          • 存储JSON的缺点:
          • 总结
          相关产品与服务
          云数据库 Redis
          腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
          http://www.vxiaotou.com