暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

redis数据存储类型介绍之string

227decision 2021-09-26
2221

redis的数据存储格式

  • redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储 。

  • 数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串。


string类型

  • 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型。

  • 存储数据的格式:一个存储空间保存一个数据 。

  • 存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用。


string数据类型的基本操作

添加/修改数据

    set key value

    获取数据

      get key

      删除数据

        del key

        添加/修改多个数据

          mset key1 value1 key2 value2 ...

          获取多个数据

            mget key1 key2

            获取数据字符个数

              strlen key

              追加信息到原始信息后部(如果原始信息存在就追加,否则新建)

                append key value


                单数据操作与多数据操作的选择

                耗时分析:应用服务器和redis之间数据的发送传输耗时时间+redis执行数据操作耗时时间。

                原则:数据量较小则可以批量操作,太大则需要拆分多次操作,根据测试redis的性能情况来做出平衡。


                string类型数据的扩展操作

                设置数值数据增加指定范围的值

                  incr key
                  incrby key increment
                  incrbyfloat key increment

                  设置数值数据减少指定范围的值

                    decr key
                    decrby key increment

                    string 作为数值操作

                    • string在redis内部存储默认就是一个字符串,当遇到增减类操作incr,decr时会转成数值型进行计算。

                    • redis所有的操作都是原子性的,采用单线程处理所有业务,命令是一个一个执行的,因此无需考虑并发 带来的数据影响。

                    • 注意:按数值进行操作的数据,如果原始数据不能转成数值,或超越了redis 数值上限范围,将报错。9223372036854775807(java中long型数据最大值,Long.MAX_VALUE)。

                    • 应用场景:redis用于控制数据库表主键id,为数据库表主键提供生成策略,保障数据库表的主键唯一性 ,此方案适用于所有数据库,且支持数据库集群。


                     设置数据具有指定的生命周期

                      setex key seconds value
                      psetex key milliseconds value

                      应用场景:redis 控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作。


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

                      数据操作不成功的反馈与数据正常操作之间的差异 

                          ① 表示运行结果是否成功 

                              (integer) 0 → false 失败 

                              (integer) 1 → true 成功 

                          ② 表示运行结果值 

                              (integer) 3 → 3 3个

                              (integer) 1 → 1 1个 

                      数据未获取到 

                           (nil)等同于null 

                      数据最大存储量 

                              512MB 

                      数值计算最大范围(java中的long的最大值) 

                              9223372036854775807


                      key 的设置约定

                      数据库中的热点数据key命名惯例

                      表名:主键名:主键值:字段名

                      例如:某个用户的粉丝数量key命名

                        table_user:id:123:fansCount


                        文章转载自227decision,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                        评论