Redis学习_数据类型操作命令

Redis学习_数据类型操作命令


1. 字符串类型 String

1.1 基本命令

1.1.1 设置值 — set

  • 语法: set key value
  • 作用: 将 value 的值 设置到 key 中
  • 注意: 对于已经设置的,则覆盖之前的值
    在这里插入图片描述

1.1.2 获得key所对应的值 — get

  • 语法: get key
  • 作用: 通过 key 获取 value
  • 注意: 如果这个没有该 key 则返回 nil 相当于java中的null
    在这里插入图片描述### 1.1.3 整型数 自增/自减 — incr/decr
  • 语法: incr / decr key
  • 作用: 对 key 对应的 value 进行自增一、自减一 ,并返回自增或自减后的值
  • 注意:
    • 如果 key 存在 ,则 value 自增一 或者 自减一
    • 如果 key 不存在, 则创建一个键值对,初始为0 ,再进行自增或者自减
    • 如果 key 对应的 value 不是整数型,则报错
    • 自增自减操作为原子性操作,
      在这里插入图片描述

1.1.4 字符串后追加 — append

  • 语法: append key value
  • 作用: 在字符串后面追加一个字符串,并返回追加内容之后的总长度
  • 注意:
    • 如果 key 存在,则追加
    • 如果 key 不存在 , 将 key 对应的 value 值设置成 value ,相当于 set 命令
      在这里插入图片描述

1.2 常用命令

1.2.1 字符串长度 — strlen

  • 语法: strlen key
  • 注意:
    • 如果 key 存在 ,返回字符串的长度
    • 如果 key 不存在,返回 0
      在这里插入图片描述

1.2.2 截取字符串 — getrange

  • 语法: getrange key start_index end_index
  • 作用: 截取字符串,为闭区间,包括start_index 和 end_index (相当于Java中的substring)
  • 注意:
    • 下标从左往右依次为 0 1 2 3 4 …
    • 下标从右往左依次为 -1 -2 -3 -4 …
    • 下标越界不报错,会返回合理范围的字符串
      在这里插入图片描述
      在这里插入图片描述

1.2.3 字符串替换 — setrange

  • 语法: setrange key offset value
  • 说明: 用 value 从 offset 开始覆盖 key 的存储的值 , 不存在的key做空白字符串。
  • 返回值,修改后的字符串的长度
    在这里插入图片描述
    在这里插入图片描述

1.2.4 创建多个KV /获得多个 KV — mset / mget

  • 语法:

    • mset : mset key value [ key value … ]
    • mget : mget key [ key… ]
      • 得到结果的顺序和输入命令中key的顺序相同
      • 如果哪个key 不存在,则哪个key 返回的值为 (nil)
  • mset
    在这里插入图片描述

  • mget
    在这里插入图片描述

2. 哈希类型 hash

2.1 基本命令

2.1.1 设置 field value — hset

  • 语法: hset key field value

  • 作用: 将对应 key 的hash表中的 域 field 的值 设置为 value

  • 注意:

    • 如果 key 不存在,则创建一个 hash ,并添加 field 和 value,并返回1
    • 如果 key 存在
      • 如果 field 是 hash 表中新 field ,且设置成功,返回 1
      • 如果 field 已经存在 , 覆盖旧值,返回0
    • 如果 key 对应的不是 hash 类型 ,报错 (error) WRONGTYPE Operation against a key holding the wrong kind of value
  • key不存在创建新hash并设值,返回1
    在这里插入图片描述

  • key存在设置新值,返回1

  • 在这里插入图片描述

  • key存在覆盖旧值,返回0
    在这里插入图片描述

  • key不是hash类型,报错
    在这里插入图片描述

2.1.2 获取key 对应hash 中field对应的value — hget

  • 语法: hget key field
  • 注意:
    • 如果 key 不存在 ,返回 (nil)
    • 如果 key 存在
      • field 存在, 返回对应value值
      • field 不存在, 返回 (nil)
    • 如果 key 对应的不是 hash ,报错
  • 如果 key 不存在 ,返回 (nil)
    在这里插入图片描述
  • 如果 key 存在 ,field 存在, 返回对应value值
    在这里插入图片描述
  • 如果key 存在,field 不存在, 返回 (nil)
    在这里插入图片描述
  • 如果 key 对应的不是 hash ,报错
    在这里插入图片描述

2.1.3 设置多个 field value — hmset

  • 语法: hmset key field value [ filed value … ]

  • 注意

    • 如果 key 不存在,创建并设值
    • 如果 key 存在
      • 如果 field 不存在,创建
      • 如果 field 存在, 覆盖
    • 如果 key 类型不是 hash ,报错

    在这里插入图片描述

2.1.4 通过 field 或者多个 value — hmget

  • 语法: hmget key value [ value … ]
  • 注意:存在返回值,不存在返回 nil ,类型不对应报错
    在这里插入图片描述

2.1.5 获取hash 所有的 field value 对 — hgetall

  • 语法: hgetall key
  • 注意: 返回的是所有的键值对
    在这里插入图片描述

2.1.6 删除 hash 中多个 field value — hdel

  • 语法: hdel key field [ field … ]
  • 注意:存在删除,不存在忽略,返回删除的个数
    在这里插入图片描述

2.2 常用命令

2.2.1 获取所有 field — hkeys

  • 语法: hkeys key
  • 作用: 返回hash 中所有的 field,如果类型不对应,返回空集
    在这里插入图片描述

2.2.2 获取所有的 value — hvals

  • 语法:hvals key
  • 作用: 返回 hash 中所有的value,如果类型不对应,返回空集

在这里插入图片描述

  • 类型不对应
    在这里插入图片描述

2.2.3 判段单个 field 在hash 中是否存在 — hexists

  • 语法: hexists key field
  • 返回值:
    • 存在返回 1
    • 不存在返回 0
    • 类型错误返回 0
      在这里插入图片描述

3. 列表类型 list

3.1 基本命令

3.1.1 插入值 — lpush / rpush

  • 语法:
    • 从左边插入: lpushkey value [ value … ]
    • 从右边插入: rpushkey value [ value … ]
    • 返回插入后元素的个数
  • 从左边插入:插入的值是逆序的
    在这里插入图片描述
  • 从右边插入:插入的值是顺序的
    在这里插入图片描述

3.1.2 截取 — lrange

  • 语法: lrange key start_index end_index
  • 注意:
    • 从左往右下标以此为 0 1 2 3 4
    • 从右往左下标依次为 -1 -2 -3 -4 -5
    • 下标超界则取合理范围的值
    • 类型不对应,报错
      在这里插入图片描述

3.1.3 返回下标所对应的值 — lindex

  • 语法: lindex key index
  • 注意:
    • 合法下标返回下标对应的 value
    • 下标越界则返回 nil
    • 类型不对应,报错
      在这里插入图片描述

3.1.4 获取list 的长度 — llen

  • 语法: llen key
  • 注意:
    • key 存在返回长度
    • key不存在返回0
    • 类型错误报错
      在这里插入图片描述

3.2 常用命令

3.2.1 移除列表中某些元素 — lrem

  • 语法: lrem key count value

  • 注意:根据参数 count 的值,移除列表中于参数 value 相等的元素

    • count > 0 从左边开始移除 count 个
    • count < 0 从右边开始移除 count 个
    • count = 0 移除所有与value 相等的元素
    • 类型错误报错
    • 要删除元素的个数多于list中元素的个数,只删除有的元素
    • 返回移除元素的个数
  • count > 0 从左边开始移除 count 个
    在这里插入图片描述

  • count < 0 从右边开始移除 count 个
    在这里插入图片描述

  • count = 0 移除所有与value 相等的元素
    在这里插入图片描述

3.2.2 对指定下标的值进行替换 — lset

  • 语法: lset key index value
  • 注意:
    • 下标越界报错
    • 支持从右往左的下标 -1 -2 -3 …
    • 类型错误报错
      在这里插入图片描述

3.2.3 在指定元素前或者后插入值 — linsert

  • 语法: linsert key BEFORE | ALFTER pivot value
  • 注意:
    • BEFORE 和 AFTER
    • key 不存在 ,不执行任何操作,返回0
    • key 存在
      • pivot 存在,插入并返回新list的长度
      • pivot不存在,找不到pivot,返回 -1
    • key 不存在 ,不执行任何操作,返回0
      在这里插入图片描述
    • key 存在, pivot 存在,插入并返回新list的长度
      在这里插入图片描述
    • key存在,pivot不存在,找不到pivot,返回 -1
      在这里插入图片描述

4. 集合类型 set

4.1 基本命令

4.1.1 向集合中添加 — sadd

  • 语法: sadd key member [member…]
  • 作用: 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略,不会再加入。
  • 返回值:加入到集合的新元素的个数。不包括被忽略的元素。
    在这里插入图片描述

4.1.2 查看集合中的所有元素 — smembers

  • 语法: smembers key
  • 作用: 获取集合 key 中的所有成员元素
  • 注意:
    • 不存在的 key 视为空集合
    • 类型错误报错
    • 没有元素的为空集
      在这里插入图片描述

4.1.3 查看某个元素是否是其成员 — sismember

  • 语法: sismember key member
  • 作用: 判断 member 元素是否是集合 key 的成员
  • 返回值: member 是集合成员返回 1,其他返回 0 。
    在这里插入图片描述

4.1.4 获取集合中元素的个数 — scard

  • 语法: scard key
  • 作用: 获取集合里面的元素个数
  • 返回值: key 的元素个数。 其他情况返回 0 ,类型错误报错。
    在这里插入图片描述

4.1.5 删除集合中的元素 – srem

  • 语法: srem key member [member…]
  • 作用: 删除集合 key 中的一个或多个 member 元素,不存在的元素被忽略。
  • 返回值: 成功删除的元素个数,不包括被忽略的元素。
    在这里插入图片描述

4.2 常用命令

4.2.1 随机返回集合中count个元素 — srandmember

  • 语法: srandmember key [count]
  • 作用: 随机返回集合中一个元素,元素不删除,依然在集合中;
  • 注意:
    • 没有count时,返回一个
    • 有count时
      • count 是正数, 返回包含 count 个数元素的集合, 集合元素各不相同。count超过set的大小,返回全部元素;
      • count 是负数,返回一个 count 绝对值的长度的集合, 集合中元素可能会重复多次。count超过set的大小,因为可以重复,所以返回count的绝对值个元素
  • 返回值:一个元素;多个元素的集合
    在这里插入图片描述

4.2.2 随机删除count个元素 — spop

  • 语法: spop key [count]
  • 作用: 从集合中随机删除count 个元素, 并返回删除的元素
  • 注意:
    • count 不可以为负数,为负数报错
    • 没有count : 删除一个
    • 有 count :删除 count 个,count超过集合的大小,删除全部
      在这里插入图片描述

5. 有序集合类型 zset

  • redis 有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员。
  • 不同的是 zset 的每个元素都会关联一个分数(分数可以重复),redis 通过分数来为集合中的成员进行从小到大的排序。

5.1 基本命令

5.1.1 向有序集合中添加元素 — zadd

  • 语法: zadd key score member [score member…]
  • 作用: 将一个或多个 member 元素及其 score 值加入到有序集合 key 中,如果 member存在集合中,则更新值;score 可以是整数或浮点数;
  • 返回值:数字,新添加的元素个数
    在这里插入图片描述

5.1.2 返回排序后制定区间的元素(从大到小排序) — zrange

  • 语法: zrange key start stop [WITHSCORES]
  • 作用:查询有序集合,指定区间的内的元素。
  • 注意:
    • 集合成员按 score 值从小到大来排序。
    • start,stop 都是从 0 开始。0 是第一个元素,1 是第二个元素,依次类推。以 -1 表示最后一个成员,-2 表示倒数第二个成员。
    • withscores 选项让 score 和 value 一同返回。
  • 返回值:自定区间的成员集合
    在这里插入图片描述

5.1.3 返回排序后制定区间的元素(从大到小排序) — zrevrange

  • 语法: zrevrange key start stop [WITHSCORES]
  • 作用: 返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递减**(从大到小)**来排列。其它同 zrange 命令。
  • 返回值:自定区间的成员集合
    在这里插入图片描述

5.1.4 删除指定元素 — zrem

  • 语法: zrem key member [member…]
  • 作用: 删除有序集合 key 中的一个或多个成员,不存在的成员被忽略
  • 返回值: 被成功删除的成员数量,不包括被忽略的成员。
    在这里插入图片描述

5.1.5 元素的个数 — zcard

  • 语法: zcard key
  • 作用: 获取有序集 key 的元素成员的个数
  • 返回值: key 存在返回集合元素的个数, key 不存在,返回 0
    在这里插入图片描述

5.2 常用命令

5.2.1 获取有序集合中所有score介于min 和 max 之间的(从小到大) — zrangebyscore

  • 语法: zrangebyscore key min max [WITHSCORES ] [LIMIT offset count]
  • 作用:获取有序集 key 中,所有 score 值介于 min 和 max 之间(包括 min 和 max)的成员,有序成员是按递增**(从小到大)**排序。
  • 注意:
    • min ,max 是包括在内 , 使用符号 ( 表示不包括。
    • min , max 可以使用 -inf ,+inf 表示最小和最大
    • limit 用来限制返回结果的数量和区间。
    • withscores 显示 score 和 value
      在这里插入图片描述
  • 找到成绩在 [ 60 , 75 ] 之间的姓名 (普通使用)
    在这里插入图片描述
  • 找到成绩在 ( 60 , 90 ) 之间的姓名 (使用’('不包括边界值)
    在这里插入图片描述
  • 找到成绩大于 85 的学生姓名 ( -inf +inf 的使用)
    在这里插入图片描述
  • 找到成绩倒数第 2 和 第3 名 ( limit的使用 offset:从第几个开始 count :数量)
    在这里插入图片描述

5.2.2 获取有序集合中所有score介于min 和 max 之间的(从大到小) — zrevrangebyscore

  • 语法: zrevrangebyscore key max min [WITHSCORES ] [LIMIT offset count]
  • 作用: 返回有序集 key 中, score 值介于 max 和 min 之间(默认包括等于 max 或 min )的所有的成员。有序集成员按 score 值递减**(从大到小)**的次序排列。

5.2.3 返回score在 min 和 max 之间成员的数量 — zcount

  • 语法: zcount key min max
  • 作用: 返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值