zoukankan      html  css  js  c++  java
  • Redis数据类型之字符串(string)

    1. string类型简介

    string类型是二进制安全的,能够存储任意类型的字符串。

    string类型是最常用到的数据类型,一种常用的用法就是将对象格式化为JSON字符串然后放到redis中,取出来的时候再反序列,不过如果序列化为二进制的话速度更快,占用空间更小。

    一个字符串类型键允许存储的最大容量是512M

    2. 如何使用

    赋值

    set <key> <value>

    image

    可以使用append命令追加值,如果指定的key不存在的话就相当于set key value,否则的话就在value后面追加,并将追加后的value的字节长度返回:

    append <key> <value>

    image

    需要注意的是如果是中文的话,因为中文都是使用UTF-8编码的,一个中文占3个字节,所以当已经存在一个中文并追加另一个中文的时候,返回的长度是6:

    image

    使用mset可以同时设置多个值,格式是:

    mset <key> <value> [<key> <value> …]

    image

    取值

    使用get命令取值,取值的格式:

    get <key>

    当key存在时返回对应的value:

    image

    否则返回一个nil:

     image

    使用mget可以同时取多个值,返回值是一个列表,当指定的某个key不存在时则返回nil:

    mget <key> [<key> …]

    image

    取value字节长度

    使用strlen取出指定key对应的value的字节长度

    strlen <key>

    image

    需要注意的是string存储的时候对于中文是UTF-8编码的,一个中文对应着三个字节:

    image

    当指定的key不存在时,返回值是nil:

    image

    操作数字

    当string中存储的是数字类型的时候,可以使用递增命令递增1,这个递增操作是原子操作。

    当指定的key不存在时默认为0,即对于一个不存在的key递增的时候会返回1:

    image

    而对于一个已经存在的key,将其值加1返回:

    image

    incr递增只能用于整数类型,否则的话会抛出错误提示不是integer类型:

    image

    与incr对应的命令是decr,使用decr每次将指定的key递减1:

    image

    使用incrby、decrby可以指定每次递增递减的量:

    image

    使用incrbyfloat一次自增一个小数值:

    image 

    但是并没有decrbyfloat这样的操作,如果需要递减一个小数的话只需要递增一个负数就可以了:

    image

    总结一下数字操作:

    incr 递增1
    decy 递减1
    incrby 递增指定的整数
    decrby 递减指定的整数
    incrbyfloat 递增指定的小数

    所有的数字操作都是当指定的key不存在时就默认为0,并在此基础上操作。

    .

  • 相关阅读:
    奇葩的Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
    dubbo的本地存根
    已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。
    数字字符串转换成与其面值相同的长整形整数
    PHP实现MySQL的主键id自动重新自增排序
    四叶玫瑰数
    PHP动态实现从数据库中访问链接到标签a的herf中
    Proteus8.0的main.asm源代码使用
    Office 2010 安装和激活出错解决办法
    PHP实现文件读写中英文数据分割插入数组代码
  • 原文地址:https://www.cnblogs.com/cc11001100/p/7792957.html
Copyright © 2011-2022 走看看