redis-6.string类型

string类型

  • 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
  • 存储数据的格式:一个存储空间保存一个数据
  • 存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用

    string类型数据的基本操作

  • 添加/修改数据
    set key value
  • 获取数据
    get key
  • 删除数据
    del key
  • 添加/修改多个数据
    mset key1 value1 key2 value2 ...
  • 获取多个数据
    mget key1 key2 ...
  • 获取数据字符个数(字符串长度)
    strlen key
  • 追加信息到原始信息后部(如果原始信息存在就追加,否则就新建)
    append key value
  • set和mset的操作选择(主要是看业务和设置的条数来定,设置条数越多mset比set越好。条数的需要看它两的零界点)

    string类型数据的扩展操作

    业务场景
    大型企业级应用中,分表操作是基本操作,使用多张表存储同类型数据,但是对应的主键id必须保证统一性,不能重复。Oracle数据库具有sequence设定,可以解决该问题,但是MySQL数据库并不具备类似的机制,那么如何解决?

    解决方案
  • 设置数值数据增加指定范围的值
    incr key
    incrby key increment
    incrbyfloat key increment
  • 设置数值数据减少指定范围的值
    decr key
    decrby key increment
    Tips1:
  • redis用于控制数据库主键id,为数据库表主键提供生成策略,保障数据库表的主键唯一性
  • 此方案适用于所有数据库,且支持数据库集群

业务场景
“最强女生”启动海选投票,只能通过微信投票,每个微信号每4小时只能投1票。
电商商家开启热门商品推荐,热门商品不能一直处于热门期维持3天,3天后自动取消。
新闻网站会出现热点新闻,热点新闻最大的特征是时效性,如何自动控制热点新闻的时效性。

解决方案

  • 设置数据具有指定的生命周期
    setex key seconds value
    psetex key milliseconds value
    Tips2:
  • redis控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作。

string类型数据操作的注意事项

  • 数据操作不成功的反馈与数据正常操作之间的差异
    ①表示运行结果是否成功
    • (integer)0 → false 失败
    • (integer)1 → true 成功
      ②表示运行结果值
    • (integer)3 → 3个
    • (integer)1 → 1个
  • 数据未获取到
    (nil)等同于null
  • 数据最大存储量
    512MB
  • 数值计算最大返回(java中的long的最大值)
    9223372036854775807(2^64-1)
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!