美文网首页工作生活
Redis----字符串

Redis----字符串

作者: 杨凯飞 | 来源:发表于2019-07-04 14:07 被阅读0次

            字符串类型是Redis最基础的数据结构,其它几种数据结构都是在字符串类型基础上构建的。需要注意的是字符串值最大不能超过512MB

        命令

                1、添加值

    set key value [ex seconds] [px milliseconds] [nx|xx]

        ex seconds:为键设置秒级过期时间

        px milliseconds:为键设置毫秒级过期时间

        nx:键必须不存在,才可以设置成功,用于添加

        xx:与nx相反,键必须存在,才可以设置成功,用于更新。

    插入成功返回ok 

                2、获取值

    get key

    存在返回value

    不存在返回nil(空)

                3、批量设置值

    mset k1 v1 k2 v2 k3 v3

    成功返回ok

                4、批量获取值

    mget k1 k2 k3 k4

    返回结果为:

        "v1"

        "v2"

        "v3"

        "v4"

    如果其中一个不存在,则返回nil,如k2不存在返回结果为

        "v1"

        (nil)

        " v3"

        " v4"

    批量操作命令可以提交效率,可以减少n次操作的网络开销,可以对比图3-1、3-2,可以看到批量操作减少了中间大部分的网络开销

    图3-1 n次get/set操作 图3-2 mget/mset操作

                5、计数

    incr key 

    incr用于计数操作,如每条文字的点赞次数、转发量等等

    返回结果

        如果值不是整数:则返回错误 (error)

        值是整数:返回自增后的结果

        键值不存在:新增一个键,值为0。然后执行incr操作返回1

    其它命令

    decr key  自减操作

    incrby key number 自增指定的数字

    decrby key number 自减指定的数字

    incrbyfloat key number 自增浮点数

                6、追加字符串

    append key value    向字符串尾部追加值

                7、字符串长度

    strlen key        返回字符串的长度,一个中文占用3个字节

                8、设置并且返回值

    getset key value

    getset和get一样会返回值,getset返回之前设置的值

    getset和set一样会设置值

                9、设置指定位置的字符

    setrange key position value

                10、获取部分字符串

    getrange key start end

        内部编码

            Redis会根据当前值的类型和长度决定使用哪种内部编码,字符串的类型的内部编码有3种

            int: 8个字节的长整形

            embstr: 小于等于39个字节的字符串

            raw: 大于39个字节的字符串。

    上面的类型可以使用命令:object encoding key来进行显示变量类型

    相关文章

      网友评论

        本文标题:Redis----字符串

        本文链接:https://www.haomeiwen.com/subject/ixybcctx.html