redis对象保存方式?

一、redis对象保存方式?

  Json字符串:
需要把对象转换为json字符串,当做字符串处理。直接使用set get来设置或者或。
  优点:设置和获取比较简单
  缺点:没有提供专门的方法,需要把把对象转换为json。(jsonlib)
字节:
  需要做序列号,就是把对象序列化为字节保存。

如果是担心JSON转对象会消耗资源的情况,这个问题需要考量几个地方,
  第一点:就是使用的JSON转换lib是否就会存在性能问题。
  第二点:就是数据的数据量级别,如果是存储百万级的大数据对象,建议采用存储序列化对象方式。如果是少量的数据级对象,或者是数据对象字段不多,还是建议采用JSON转换成String方式。
  毕竟redis对存储字符类型这部分优化的非常好。具体采用的方式与方法,还要看你所使用的场景。

二、Redis数据淘汰机制

  在 redis 中,允许用户设置最大使用内存大小 server.maxmemory,在内存限定的情况下是很有用的。譬如,在一台 8G 机子上部署了 4 个 redis 服务点,每一个服务点分配 1.5G 的内存大小,减少内存紧张的情况,由此获取更为稳健的服务。

  内存大小有限,需要保存有效的数据?
  redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。
  redis 提供 6种数据淘汰策略:
  volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
  volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
  volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
  allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
  allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
  no-enviction(驱逐):禁止驱逐数据

猜你喜欢

转载自blog.csdn.net/faramita_of_mine/article/details/124185000