美文网首页
Redis 字符串

Redis 字符串

作者: 爱折腾的傻小子 | 来源:发表于2020-09-26 12:15 被阅读0次
    Setnx (SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值
    • Setnx redis命令 SETNX KEY_NAME VALUE
    // 测试框架 Lumen 7.x 
    // SETNX KEY_NAME VALUE
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('setnx', [
       'weather',    // KEY_NAME
       123           // VALUE
    ]);
    // or 使用下面形式设置
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->setnx('weather', 123);
    // 返回值$return 布尔值 设置成功返回 true, 设置失败返回 false
    
    Msetnx 所有给定 key 都不存在时,同时设置一个或多个 key-value 对
    • msernx redis命令 MSETNX key1 value1 key2 value2 .. keyN valueN
    // 如果设置其中有一个key存在那么全部都不会设置成功
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('msetnx', [
        [
            's1'    => 's1',
            's2'    => 's2',
    //        'as'    => 'as',
        ]
    ]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->msetnx(        [
    //    's1'    => 's1',
    //    's2'    => 's2',
    //    'as'    => 'as',
    //]);
    // 返回值设置成功true 设置失败false
    
    SetEx 命令为指定的 key 设置值及其过期时间
    • 如果 key 已经存在, SETEX 命令将会替换旧的值和过期时间
    • setex redis命令 SETEX KEY_NAME TIMEOUT VALUE
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('setex', [
        's1',     // KEY_NAME
        60,       // 过期时间(TIMEOUT)
        'adasd'   // vaule 
    ]);
    // or 
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->setex('s1', 60, 'adasd');
    // 返回值$return 布尔值 设置成功返回 true 设置失败返回 false
    
    Psetex 以毫秒为单位设置 key 的生存时间
    • 和 SETEX 命令相似
    • psetex redis命令 PSETEX key1 EXPIRY_IN_MILLISECONDS value1
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('psetex', [
        'num1', 20000, 856
    ]);
    // or
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->psetex('num1', 20000, 856);
    // 返回值$return 布尔值 设置成功返回 true 设置失败返回 false
    
    GetRange 获取存储在指定 key 中字符串的子字符串
    • 字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)
    • getrange redis命令 GETRANGE KEY_NAME start end
    // weather 在redis保存的值是 123  0=>1、1=>2、2=>3
    $a = \Illuminate\Support\Facades\Redis::connection('expired')->command('getrange', [
            'weather',   // key
            1,           //   start
            2            // end
    ]);  // 23
    // or 
    // \Illuminate\Support\Facades\Redis::connection('expired')->getrange('weather', 1, 2);
    // 如果key不存在 或者偏移量不在字符串范围 都返回空串 ""
    
    Setrange
    • 用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始
    • setrange redis命令 SETRANGE KEY_NAME OFFSET VALUE
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('setrange', [
        'as', 1, 'ccccc'
    ]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->setrange('as', 1, 'ccccc');
    // 返回值返回替换后字符串的长度 失败返回false
    
    Set 设置给定 key 的值
    • 如果 key 已经存储其他值, SET 就覆写旧值,且无视类型
    • set redis命令 SET KEY_NAME VALUE
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('set', [
        'as', '56789'
    ]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->set('as', '56789');
    // 返回值$return返回布尔值 成功返回true 失败返回false
    
    Mset 同时设置一个或多个 key-value
    • 如果设置key已存在直接覆盖
    • mset redis命令 MSET key1 value1 key2 value2 .. keyN valueN
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('mset', 
        [
            ['s1' => '60', 'adasd' => '56']  // 设置key1 => value1
        ]
    );
    // or 
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->mset([
    //    's1' => '61', 'adasd' => '57'
    // ]);
    // 返回值$return返回布尔值 成功返回true 失败返回false
    
    Get 获取指定 key 的值
    • 如果key 储存的值不是字符串类型,返回一个错误
    • get redis命令 GET KEY_NAME
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('get', [
        'as'  // KEY_NAME
    ]);
    // or
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->get('as');
    // 返回值$return返回布尔值 成功返回redis存储值 失败返回false
    
    Mget 返回所有(一个或多个)给定 key 的值
    • 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil php里返回false
    • mget redis命令 MGET KEY1 KEY2 .. KEYN
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('mget', [
        ['num', 'as','ssss']
    ]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->mget(['num', 'as','ssss']);
    // 返回值["-28", "56789", null] 不存在的key返回null 失败时返回false
    
    Decr 将 key 中储存的数字值减一
    • 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作
    • decr redis命令DECR KEY_NAME
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('decr', ['num']);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->decr('num');
    // 返回值 成功返回当前被减一在redis里保存的数 失败返回false 会被减成负数
    
    Decrby key 所储存的值减去给定的减量值
    • 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作
    • decrby redis命令 DECRBY KEY_NAME DECREMENT_AMOUNT
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('decrby', ['num', 5]);
    // or
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->decrby('num', 10);
    // 返回值 成功返回当前被减一在redis里保存的数 失败返回false 会被减成负数
    
    Strlen 获取指定 key 所储存的字符串值的长度
    • strlen redis命令 STRLEN KEY_NAME
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('strlen', [
        'num'
    ]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->strlen('num');
    // 失败返回false 成功返回长度 -29 返回 3
    
    Incr 将 key 中储存的数字值增一
    • 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作
    • incr redis命令 INCR KEY_NAME
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('incr', ['num']);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->incr('num');
    // 修改成功返回修改后redis里存储的值 否则返回false
    
    Incrby 将 key 中储存的数字加上指定的增量值
    • 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令
    • incrby redis命令 INCRBY KEY_NAME INCR_AMOUNT
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('incrby', ['num', 10]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->incrby('num', 2);
    // 修改成功返回修改后redis里存储的值 否则返回false
    
    Incrbyfloat 为 key 中所储存的值加上指定的浮点数增量值
    • 如果 key 不存在,那么 INCRBYFLOAT 会先将 key 的值设为 0 ,再执行加法操作
    • incrbyfloat redis命令 INCRBYFLOAT KEY_NAME INCR_AMOUNT
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('incrbyfloat', [
        'num', 10.2
    ]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->incrbyfloat('num', 2.3);
    // 修改成功返回修改后redis里存储的值 否则返回false
    
    Append 用于为指定的 key 追加值
    • 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾
    • 如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样
    • append redis命令 PPEND KEY_NAME NEW_VALUE
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('append', [
        'as', '- ccccc'
    ]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->append('as', '- ccccc');
    // 成功返回当前更改后redis里面的字符串长度 失败返回false
    
    Setbit 用于对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)
    • setbit redis命令 Setbit KEY_NAME OFFSET
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('setbit', [
        'num',      // Key 
        10086,    // 设置第bit位
        1             // 设置值 1
    ]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->setbit('num', 10086, 1);
    // 返回值 0 或者 1 偏移量原来储存的位
    
    Getbit 对 key 所储存的字符串值,获取指定偏移量上的位(bit)
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('getbit', [
        'num', 2
    ]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->getbit( 'num', 2);
    // 返回 字符串值指定偏移量上的位(bit)
    // 当偏移量 OFFSET 比字符串值的长度大,或者 key 不存在时,返回 0
    

    相关文章

      网友评论

          本文标题:Redis 字符串

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