Redis学习

    xiaoxiao2022-07-06  198

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

    1. 字符串类型 String1.1 基本命令1.1.1 设置值 --- set1.1.2 获得key所对应的值 --- get1.1.4 字符串后追加 --- append 1.2 常用命令1.2.1 字符串长度 --- strlen1.2.2 截取字符串 --- getrange1.2.3 字符串替换 --- setrange1.2.4 创建多个KV /获得多个 KV --- mset / mget 2. 哈希类型 hash2.1 基本命令2.1.1 设置 field value --- hset2.1.2 获取key 对应hash 中field对应的value --- hget2.1.3 设置多个 field value --- hmset2.1.4 通过 field 或者多个 value --- hmget2.1.5 获取hash 所有的 field value 对 --- hgetall2.1.6 删除 hash 中多个 field value --- hdel 2.2 常用命令2.2.1 获取所有 field --- hkeys2.2.2 获取所有的 value --- hvals2.2.3 判段单个 field 在hash 中是否存在 --- hexists 3. 列表类型 list3.1 基本命令3.1.1 插入值 --- lpush / rpush3.1.2 截取 --- lrange3.1.3 返回下标所对应的值 --- lindex3.1.4 获取list 的长度 --- llen 3.2 常用命令3.2.1 移除列表中某些元素 --- lrem3.2.2 对指定下标的值进行替换 --- lset3.2.3 在指定元素前或者后插入值 --- linsert 4. 集合类型 set4.1 基本命令4.1.1 向集合中添加 --- sadd4.1.2 查看集合中的所有元素 --- smembers4.1.3 查看某个元素是否是其成员 --- sismember4.1.4 获取集合中元素的个数 --- scard4.1.5 删除集合中的元素 -- srem 4.2 常用命令4.2.1 随机返回集合中count个元素 --- srandmember4.2.2 随机删除count个元素 --- spop 5. 有序集合类型 zset5.1 基本命令5.1.1 向有序集合中添加元素 --- zadd5.1.2 返回排序后制定区间的元素(从大到小排序) --- zrange5.1.3 返回排序后制定区间的元素(从大到小排序) --- zrevrange5.1.4 删除指定元素 --- zrem5.1.5 元素的个数 --- zcard 5.2 常用命令5.2.1 获取有序集合中所有score介于min 和 max 之间的(从小到大) --- zrangebyscore5.2.2 获取有序集合中所有score介于min 和 max 之间的(从大到小) --- zrevrangebyscore5.2.3 返回score在 min 和 max 之间成员的数量 --- zcount


    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 和 AFTERkey 不存在 ,不执行任何操作,返回0key 存在 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 )的成员的数量
    最新回复(0)