• redis 从小白到大师系列


    字符串

    Redis 字符串数据类型

    1. set 字符串
    /**
     * 设置字符串
     */
    $t = $redis->set('o1','o1');
    //返回true or false
    var_dump($t);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. get字符串
    /**
     * 获取字符串
     */
    $t = $redis->get('o1');
    //返回true or false
    var_dump($t);
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果:
    string(2) “o1”

    1. 返回 key 中字符串值的子字符 getrange
    /**
     * 已存字符串:abcdefghijklmo
     * 获取string  getRange 获取存储在指定 key 中字符串的子字符串
     */
    $geRange = $redis->getRange('k1',0,-1);
    var_dump($geRange);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    结果:
    string(14) “abcdefghijklmo”

    1. getSet 将给定 key 的值设为 value ,并返回 key 的旧值(old value)
    $getSet = $redis->getSet('k1','AAABBBCCCDDD');
    var_dump($getSet);
    
    
    • 1
    • 2
    • 3

    结果:
    string(14) “abcdefghijklmo”

    1. mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil
    /**
     * 批量获取 a100 不存在,所以未false
     */
    $mget = $redis->mget(['a1','a2','a100']);
    
    • 1
    • 2
    • 3
    • 4

    结果:
    array(3) { [0]=> string(3) “v11” [1]=> string(3) “v22” [2]=> bool(false) }

    1. 批量设置string
    /**
     * 批量设置
     */
    $arr = [];
    $arr['a1'] = 'v11';
    $arr['a2'] = 'v22';
    $arr['a3'] = 'v33';
    $arr['a4'] = 'v44';
    $res = $redis->mset($arr);
    var_dump($res);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    结果
    bool(true)
    在这里插入图片描述

    1. Setex 命令为指定的 key 设置值及其过期时间

    /**

    • Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值,如果不存在,则添加
      */
      $res = r e d i s − > s e t e x ( ′ a 1 ′ , 30 , ′ a a a a ′ ) ; v a r d u m p ( redis->setex('a1',30,'aaaa'); var_dump( redis>setex(a1,30,aaaa);vardump(res);
      在这里插入图片描述
      结果:
      bool(true)
    1. Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。

    /**

    • Setnx 命令
      */
      $res = r e d i s − > s e t n x ( ′ s e t n x ′ , ′ 你 好 ′ ) ; v a r d u m p ( redis->setnx('setnx','你好'); var_dump( redis>setnx(setnx,);vardump(res);
    在这里插入代码片
    
    • 1

    如果key setnx 不存在则设置成功,返回true
    如果如果key setnx 存在,则返回false
    结果:
    bool(true)

    可设置过期的NX

    $res = $redis->set('setnx1','setnx1',['NX','EX'=>60]);
    var_dump($res);
    
    • 1
    • 2
    1. strlen 返回 key 所储存的字符串值的长度
    /**
     * strlen 返回 key 所储存的字符串值的长度。
     */
    
    $strlen = $redis->strlen('setnx');
    var_dump($strlen);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    结果:
    int(6)

    1. incr命令

    Redis Incr 命令将 key 中储存的数字值增一。

    如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。

    如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

    本操作的值限制在 64 位(bit)有符号数字表示之内

    /**
     * Incr  命令将 key 中储存的数字值增一
     */
    $res = $redis->incr("incr_name");
    var_dump($res);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    结果:
    int(1)
    在这里插入图片描述
    11. Incrby 命令和incr一样,只是需要自定义步长

     * Incrby 命令和incr一样,只是需要自定义步长
     */
    $res = $redis->incrBy("incrby_name",2);
    var_dump($res);
    
    • 1
    • 2
    • 3
    • 4

    /**

    1. Incrbyfloat 命令
    /**
     * Incrby 命令和incr一样,只是需要自定义步长
     */
    $res = $redis->incrByFloat("Incrbyfloat_name1",2.55);
    var_dump($res);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    结果:
    float(2.55)

    1. Decr 命令
      Redis Decr 命令将 key 中储存的数字值减一。

    如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。

    如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

    本操作的值限制在 64 位(bit)有符号数字表示之内。

    /**
     * Incrby 命令和incr一样,只是需要自定义步长
     */
    $res = $redis->decr("incr_name");
    var_dump($res);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    结果:
    一直减一会出现负数
    int(1)
    int(-10)

    1. Decrby 命令
    /**
     * decrBy 命令和incr一样,只是需要自定义步长
     */
    $res = $redis->decrBy("incr_name",2);
    var_dump($res);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. Append 命令
      Redis Append 命令用于为指定的 key 追加值。
      如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
      如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样
    $v = "wo shi shui";
    $temp = $redis->append('k1',$v); //返回该字符串的长度
    $tmp = $redis->get('k1');
    var_dump($temp);
    var_dump($tmp);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    int(34)
    string(34) “AAABBBCCCDDDwo shi shuiwo shi shui”

    Hash

    Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
    Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

    1. hset 命令
      Redis Hset 命令用于为哈希表中的字段赋值 。
      如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
      如果字段已经存在于哈希表中,旧值将被覆盖。
    /**
     * hash hset
     */
    $res = $redis->hSet('hset_key','user_1','1');
    var_dump($res);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    返回值:
    如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。

    在这里插入图片描述
    2. hmset() 批量插入

    $arr['user_id'] = 1;
    $arr['user_name'] = '李冰';
    $arr['user_age'] = 100;
    $arr['user_address'] = '西安市未央区吕小寨';
    $res = $redis->hMSet('hset_key',$arr);
    var_dump($res);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    返回值:
    true

    在这里插入图片描述

    1. hget 命令用于返回哈希表中指定字段的值。
    $hget = $redis->hGet('hset_key','user_name');
    var_dump($hget);
    
    • 1
    • 2

    返回值:
    string(6) “李冰”

    $res = $redis->hMGet('hset_key',['user_name','user_age1']);
    var_dump($res);
    
    
    • 1
    • 2
    • 3

    array(2) { [“user_name”]=> string(6) “李冰” [“user_age”]=> string(3) “100” }

    1. HGETALL 获取在哈希表中指定 key 的所有字段和值
    $res = $redis->hGetAll('hset_key');
    var_dump($res);
    
    
    • 1
    • 2
    • 3

    返回值:

    array(4) {
      ["user_id"]=>
      string(1) "1"
      ["user_name"]=>
      string(6) "李冰"
      ["user_age"]=>
      string(3) "100"
      ["user_address"]=>
      string(27) "西安市未央区吕小寨"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1. hdel 命令
    /**
     * Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。
     */
    
    $res = $redis->hDel('hset_key4','user_id');
    var_dump($res);
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    返回值:
    int(1)

    删除user_id
    在这里插入图片描述
    删除user_id
    在这里插入图片描述

    删除多个hash_key

    $res = $redis->hDel('hset_key3','user_id','user_name','user_address');
    var_dump($res);
    
    • 1
    • 2

    在这里插入图片描述

    1. Hexists 命令用于查看哈希表的指定字段是否存在。
    $res = $redis->hExists('hset_key3','user_id');
    var_dump($res);
    
    • 1
    • 2

    如果没有hash_key ,则返回false,
    如果有hash_key ,则返回true,
    在这里插入图片描述

    1. Hincrby 命令 用于为哈希表中的字段值加上指定增量值。
      Redis Hincrby 命令用于为哈希表中的字段值加上指定增量值。
      增量也可以为负数,相当于对指定字段进行减法操作。
      如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
      如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
      对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。
      本操作的值被限制在 64 位(bit)有符号数字表示之内。
    在这里插入代码片
    
    • 1

    增加前user_age
    在这里插入图片描述
    增加后user_age
    在这里插入图片描述

    1. Redis Hincrbyfloat 命令用于为哈希表中的字段值加上指定浮点数增量值。

    如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。

    $res = $redis->hIncrByFloat('hset_key_float','age',10.01);
    var_dump($res);
    
    • 1
    • 2

    返回值:
    float(10.01)

    在这里插入图片描述

  • 相关阅读:
    LuatOS-SOC接口文档(air780E)-- fonts - 字体库
    动态规划之线性dp(上)
    发现Spring事务的一个实锤bug,官方还拒不承认?你来评评理...
    【Android】Drawable 和src 的区别和理解
    大模型 舆情分析 数据构造 prompt提示词 经验分享 数据准备
    释放机器人潜力,INDEMIND深耕底层技术
    Java键盘录入案例
    升讯威在线客服系统是如何实现对 IE8 完全完美支持的(怎样从 WebSocket 降级到 Http)【干货】
    牛客小白月赛#59(A~F)
    Python中 os 和 os.path 模块处理文件路径的方法
  • 原文地址:https://blog.csdn.net/xxpxxpoo8/article/details/133992566