美文网首页Redis
redis-API-字符串

redis-API-字符串

作者: PHP的艺术编程 | 来源:发表于2018-12-11 11:49 被阅读0次
    字符串.png

    值最大不能超过512MB

    设置值

    setex和setnx

    set key value [ex 秒] [px 毫秒] [nx|xx]

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

    获取值

    get key

    • 键不存在返回nil

    批量设置值

    mset key value [key value ...]

    批量获取值

    mget key [key ....]

    计数

    incr key

    incr命令用于对值做自增操作,返回结果分为三种情况:
    ·值不是整数,返回错误。
    ·值是整数,返回自增后的结果。
    ·键不存在,按照值为0自增,返回结果为1。

    除了incr命令,Redis提供了decr(自减)、incrby(自增指定数字)、
    decrby(自减指定数字)、incrbyfloat(自增浮点数):

    decr key
    incrby key increment
    decrby key decrement
    incrbyfloat key increment

    追加值

    append key value

    字符串长度

    strlen key

    设置并返回值

    getset key value

    127.0.0.1:6379> getset hello world
    (nil)
    127.0.0.1:6379> getset hello redis
    "world"

    设置指定位置字符

    setrange key offeset value

    127.0.0.1:6379> set redis pest
    OK
    127.0.0.1:6379> setrange redis 0 b
    (integer) 4
    127.0.0.1:6379> get redis
    "best"

    获取指定位置字符

    getrange key start end

    start和end分别是开始和结束的偏移量,偏移量从0开始计算

    内部编码

    字符串类型的内部编码有3种:
    ·int:8个字节的长整型。
    ·embstr:小于等于39个字节的字符串。
    ·raw:大于39个字节的字符串。
    Redis会根据当前值的类型和长度决定使用哪种内部编码实现。

    使用场景

    限速:
    手机短信验证,比如一分钟不能超过5次
    一些网站限制一个IP地址不能在一秒钟之内访问超过n次

    2.共享session
    一个分布式Web服务将用户的Session信息保存在各自服务器中,这样会造成一个问题,出于负载均衡的考
    虑,分布式服务会将用户的访问均衡到不同服务器上,用户刷新一次访问可
    能会发现需要重新登录---可以使用Redis将用户的Session进行集中管理
    3.计数

    注意:
    设计合理的键名,有利于防止键冲突和项目的可维护性,比较推荐的方式是使用“业务名:对象名:id:[属性]”作为键名。在能描述键含义的前提下适当减少键的长度,从而减少由于键过长的内存浪费。

    相关文章

      网友评论

        本文标题:redis-API-字符串

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