美文网首页
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--数据类型命令(一)

    Redis字符串(string) Redis字符串数据类型的相关命令用于管理redis字符串值 语法: redis...

  • redis

    redis Redis 数据结构和底层实现string:简单动态字符串SDS,Redis 的字符串是动态字符串,是...

  • python操作redis

    连接redis服务 Redis 字符串(String) Redis 哈希(Hash) Redis 列表(List)...

  • Redis' strings

    Redis字符串基本操作命令 底层实现 Redis中,字符串对象是一个基础对象,所有键值均是字符串对象。Redis...

  • redis: 数据类型

    字符串 字符串是Redis最基本的数据类型。Redis的字符串是二进制安全的,意味着一个Redis字符串可以包含任...

  • Redis初步学习二——2018年8月21日

    redis初步使用 redis操作字符串 未完成。

  • 数据结构

    字符串 Redis中所有的key都是字符串,但是Redis没有采用c字符串,而是自己封装了个动态字符串,称为SDS...

  • 一、Redis数据类型

    Redis数据类型 1. 字符串 Redis中字符串是二进制安全的,这意味着一个Redis字符串可以包含任意类型的...

  • 110Redis 简明教程--Redis 数据类型

    Redis strings 字符串是一种最基本、最常用的 Redis 值类型。Redis 字符串是二进制安全的,这...

  • redis 简单记录

    redis关注点: 1、redis命令:Redis 命令参考 — Redis 命令参考 字符串:SET key v...

网友评论

      本文标题:Redis 字符串

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