• 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,并在此基础上操作。

    .

  • 相关阅读:
    postmessage
    input、textarea等输入框输入中文时,拼音在输入框内会触发input事件的问题
    h5判断设备是ios还是android
    js获取地址栏的参数
    BootStrap 响应式布局
    前端框架 BootStrap 快速入门(Hallo Word)
    HTML + CSS + JavaScript 实现注册页面信息验证(表单验证)
    HTML + CSS + JavaScript 实现勾选动态表格中的记录
    JavaScript常见的事件监听
    HTML + CSS + JavaScript 实现简单的动态表格
  • 原文地址:https://www.cnblogs.com/cc11001100/p/7792957.html
Copyright © 2020-2023  润新知