2、Redis7 十大数据类型(一)

命令官网
英文版:https://redis.io/commands/
中文版:http://redis.cn/commands.html/

1.1 类型说明
在这里插入图片描述
1.2 Key命令

命令不区分大小写,但是key区分

命令	              说明
keys *          //展示当前库的所有key
exists key      //判断某个key是否存在
type key        //查看你的key是什么类型
del key          //删除指定的key数据
unlink key      //非阻塞删除,仅仅将keys从keyspace元数据中删除,没真正的删除会在后续异步中操作
ttl key            //查看还有多少秒过期 -1表示永不过期 -2 表示已过期
expire key 秒      //给key设置过期时间
move key [0-15] // 将当前数据库的key移动到指定的数据库中,redis默认是有16个数据库的
select [0-15]       // 切换数据库[0-15],默认为0
dbsize                // 查看当前数据库key的数量
flushdb               // 清空当前库
flushall               // 清空16个数据库 慎用

Redis 的过期时间设置有四种形式:

EXPIRE 秒——设置指定的过期时间(),表示的是时间间隔。
PEXPIRE 毫秒——设置指定的过期时间,以毫秒为单位,表示的是时间间隔。
EXPIREAT 时间戳-秒——设置指定的 Key 过期的 Unix 时间,单位为秒,
表示的是时间/时刻。
PEXPIREAT 时间戳-毫秒——设置指定的 Key 到期的 Unix 时间,
以毫秒为单位,表示的是时间/时刻。

1.3 String(字符串)操作命令

SET 设置

格式:set 参数1 参数2 [参数3] [参数4] [参数5]

参数1:key名称
参数2:value
参数3:NX | XX
参数4:GET
参数5:EX seconds | PX milliseconds |
EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL

set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]

参数说明表
在这里插入图片描述

示例:

设置k1的value为hello:

set k1 hello

如果k2存在直接返回nil,如果k2不存在,设置k2的value为hello:

set k2 hello NX

如果k3不存在直接返回nil,如果k3存在,设置k3的value为"hello":

set k3 hello XX

先返回k4原来的value再将k4的value修改为hello,如果k4不存在返回值为nil:

set k4 hello get

设置k5的value为hello,并在10秒后过期:

set k5 hello ex 10

设置k6的value为hello,并在500毫秒后过期:

set k6 hello px 500

设置k7的value为hello,并在到达时间戳1783219280秒过期:

set k7 hello exat 1783219280

设置k8的value为hello,并在到达时间戳1783219461238毫秒过期:

set k8 hello exat 1783219461238

设置k9的value为hello,并保留k9原先设定的过期时间:

set k9 hello keepttl

GET 查询

格式:get 参数1

参数1:key名称

获取key为kk的value

get kk

GETSET 查询后设置

格式:getset 参数1 参数2

参数1:key名称
参数2:内容
示例:

先返回k1原来的value,再将value设置为hello

getset k1 hello

SETEX 过期值设置

格式:setex 参数1 参数2 参数3

参数1:key名称
参数2:秒
参数3:内容
示例:

设置k1的值为hello并在10秒后过期

setex k1 10 hello

SETNX 冲突设置

格式:setnx 参数1 参数2

参数1:key名称
参数2:内容
示例:

如果k1不存在,设置k1的值为hello

setnx k1 hello

MGET 批量查询

格式:mget 参数1

参数1:key列表
示例:

获取k1、k2的value

mget k1 k2

MSET 批量设置

格式:MSET 参数1

参数1:键值对列表
示例:

设置k1的value为v1、k2的value为v2

mset k1 v1 k2 v2

MSETNX NX规则批量设置

格式:MSETNX 参数1

参数1:键值对列表
示例:

如果不存在k1、k2(需都成立),则设置k1的value为v1、k2的value为v2

msetnx k1 v1 k2 v2

GETRANGE 精准截取

格式:getrange 参数1 参数2 参数3

参数1:key名称
参数2:起始位置
参数3:终止位置
示例:

获取key的value,并返回value的0 - 5位置上的字符

getrange key 0 5

SETRANGE 精准设置

格式:setrange 参数1 参数2 参数3

参数1:key名称
参数2:起始位置
参数3:字符串
示例:

将hello设置到k1对应value的索引1位置

setrange k1 1 hello

INCR 自增查询

格式:incr 参数1

参数1:key名称
注:这里的key对应的value必须是数字整型

示例:

使k1的value自增1并返回自增后的值

incr k1

INCRBY 增加查询

格式:incrby 参数1 参数2

参数1:key名称
参数2:数字整型
注:这里的key对应的value必须是数字整型

示例:

使k1的value增加5并返回增加后的值

incrby k1 5

DECR 自减查询

格式:decr参数1

参数1:key名称
注:这里的key对应的value必须是数字整型

示例:

使k1的value自减1并返回自增后的值

decr k1

DECRBY 减少查询

格式:decrby 参数1 参数2

参数1:key名称
参数2:数字整型
注:这里的key对应的value必须是数字整型

示例:

使k1的value减少5并返回减少后的值

decrby k1 5

STRLEN 获取字符串长度

格式:strlen 参数1

参数1:key名称
获取k1的value字符串长度

strlen k1

APPEND 追加内容

格式:append 参数1 参数2

参数1:key名称
参数2:内容
将hello追加到k1的value后

append k1 hello

1.4 List(集合)操作命令

LPUSH 左端插入

格式:lpush 参数1 参数2

参数1:list名称
参数2:插入的数据,可以是多个用空格隔
示例:

在list1左端依次插入hello、world

lpush list1 hello world

RPUSH 右端插入

格式:rpush 参数1 参数2

参数1:list名称
参数2:插入的数据,可以是多个用空格分隔
示例:

在list1右端依次插入hello、world

rpush list1 hello world

LRANGE 检索列表

格式:lrange 参数1 参数2 参数3

参数1:list名称
参数2:起始索引
参数3:终止索引
示例:

检索list1索引0到3的数据

lrange list1 0 3

检索list2的所有数据

lrange list2 0 -1

LPOP 左端弹出

格式:lpop 参数1 [参数2]

参数1:list名称
参数2:数量
示例:

弹出list1左端第1条数据

lpop list1

弹出list1左端起3条数据

lpop list1 3

RPOP 右端弹出

格式:rpop 参数1 [参数2]

参数1:list名称
参数2:数量
示例:

弹出list1右端第1条数据

rpop list1

弹出list1左端起2条数据

rpop list1 2

LINDEX 检索指定索引数据

格式:lindex 参数1 参数2

参数1:list名称
参数2:索引
示例:

检索list1索引为5的数据

lindex list1 5

LLEN 检索数量

格式:llen 参数1

参数1:list名称
示例:

检索list1数据的条数

llen list1

LREM 删除值

格式:lrem 参数1 参数2 参数3

参数1:list名称
参数2:数量
参数3:指定值
示例:

在list1中删除5条值为hello的数据

lrem list1 5 hello

LTRIM 截取赋值

格式:ltrim 参数1 参数2 参数3

参数1:list名称
参数2:起始索引
参数3:终止索引
示例:

截取list1索引1到5的数据,将截取片段替换为list1的value

ltrim list1 1 5

RPOPLPUSH 弹出插入

格式:rpoplpush 参数1 参数2

参数1:list名称
参数2:list名称
示例:

将list1右端数据弹出,并将该数据压入list2的左端

rpoplpush list1 list2

LSET 修改

格式:lset 参数1 参数2 参数3

参数1:list名称
参数2:索引
参数3:值
示例:

将list1索引为0的值修改为hello

lset list1 0 hello

LINSERT 插入

格式:linsert 参数1 参数2 参数3 参数4

参数1:list名称
参数2:before | after
参数3:已有值
参数4:新值
示例:

在list1插入一个新值world位置在hello前面

linsert before hello world

在list2插入一个新值world位置在hello后面

linsert after hello world

1.5 Hash(哈希)操作命令

HSET 设置

格式:hset 参数1 参数2

参数1:hash名称
参数2:键值对
示例:

在user01中添加一个键值对key为id、value为1

hset user01 id 1

HGET 获取

格式:hget 参数1 参数2

参数1:hash名称
参数2:内部key
获取user01的id

hget user01 id

HMSET 批量设置

格式:hmset 参数1 参数2

参数1:hash名称
参数2:键值对(可以多个使用空格分隔)
示例:

在user01中添加一个id值为1、name值为zhangsan

hmset user01 id 1 name zhangsan

HMGET 批量获取

格式:hmget 参数1 参数2

参数1:hash名称
参数2:内部key(可以多个使用空格分隔)
示例:

获取user01的id和name

hmget user01 id name

HGETALL 获取所有

格式:hgetall 参数1

参数1:hash名称
示例:

获取user001的所有内容

hgetall user001

HLEN 获取长度

格式:hlen 参数1

参数1:hash名称
示例:

获取user001的键值对数量

hlen user001

HDEL 删除键值对

格式:hdel 参数1 参数2

参数1:hash名称
参数2:内部key
示例:

删除user001的name键值对

hdel user001 name

HEXISTS 存在检索

格式:hexists 参数1 参数2

参数1:hash名称
参数2:内部key
示例:

检索user001是否存在name键

hexists user001 name

HKEYS 获取所有键

格式:hkeys 参数1

参数1:hash名称
示例:

获取user001的所有key

hkeys user001

HVALS 获取所有值

格式:hkeys 参数1

参数1:hash名称
示例:

获取user001的所有value

hvals user001

HINCRBY 整数加法

格式:hincrby 参数1 参数2 参数3

参数1:hash名称
参数2:内部key
示例:

对user001中age的value增加1

hincrby user001 age 1

HINCRBYFLOAT 浮点数加法

格式:hincrbyfloat 参数1 参数2 参数3

参数1:hash名称
参数2:内部key
示例:

对user001中score的value增加0.5

hincrby user001 score 0.5

HSETNX NX规则设置

格式:hsetnx 参数1 参数2

参数1:hash名称
参数2:键值对
示例:

如果user01中不存在id,则添加一个键值对key为id、value为1

hsetnx user01 id 1

1.6 Set(集合)操作命令

SADD 添加元素

格式:sadd 参数1 参数2

参数1:set名称
参数2:元素(可以多个使用空格分隔)
示例:

将hello、world添加到set1

sadd set1 hello world

SMEMBERS 遍历

格式:smembers 参数1

参数1:set名称
示例:

遍历set1

smembers set1

SISMEMBER 存在判断

格式:sismember 参数1 参数2

参数1:set名称
参数2:元素
示例:

判断hello是否存在于set1

sismember set hello

SREM 删除

格式:srem 参数1 参数2

参数1:set名称
参数2:元素
示例:

在set1中删除hello

srem set1 hello

SCARD 检索元素个数

格式:scard 参数1

参数1:set名称
示例:

检索set1中元素个数

scard set1

SRANDMEMBER 随机展示

格式:srandmember 参数1 参数2

参数1:set名称
参数2:数量
示例:

在set1随机展示2个元素

srandmemeber set1 2

SPOP 随机弹出

格式:spop 参数1 参数2

参数1:set名称
参数2:数量
示例:

在set1 随机弹出2个元素

spop set1 2

注:spop与srandmember区别在于spop会将元素删除

SMOVE 元素移动

格式:smove 参数1 参数2 参数3

参数1:数据源set名称
参数2:接收set名称
参数3:元素
示例:

将set1中的hello移动到set2

smove set1 set2 hello

SDIFF 差集

格式:sdiff 参数1 参数2

参数1:被差运算set

参数2:差运算set(可以多个用空格分隔)

示例:

检索在set1和set2中set1独有的元素

sdiff set1 set2

SUNION 并集

格式:sunion 参数1 参数2

参数1:set名称

参数2:set名称(可以多个用空格分隔)

示例:

检索set1、set2合并后的集合

sunion set1 set2

SINTER 交集

格式:sinter 参数1 参数2

参数1:set名称

参数2:set名称(可以多个用空格分隔)

示例:

检索set1和set2共有的元素,返回结果集

sinter set1 set2

SINTERCARD 交集(redis7新命令)

格式:sintercard 参数1 参数2 参数3

参数1:参与的set数量

参数2:参与的set名称(每个用空格分隔)

参数3:limit限制

示例:

检索set1和set2共有的元素,返回数量

sintercard 2 set1 set2

检索set1和set2共有的元素,返回数量,且数量作最大限制为10

sintercard 2 set1 set2 limit 10

1.7 Zset(有序集合)操作命令

ZADD 添加

格式:zadd 参数1 参数2 参数3

参数1:zset名称
参数2:zset元素(score value)(可以多个使用空格分隔)
示例:

在zset1添加一个元素score为60、value为hello

zadd zset1 60 hello

ZRANGE 遍历

格式:zrange 参数1 参数2 参数3 [参数4]

参数1:zset名称
参数2:起始索引
参数3:终止索引
参数4:withscores
示例:

遍历zset1所有元素

zrange zset1 0 -1

附带分数遍历zset2所有元素

zrange zset2 0 -1 withscores

ZREVRANGE 反转遍历

格式:zrecrange 参数1 参数2 参数3 [参数4]

参数1:zset名称
参数2:起始索引
参数3:终止索引
参数4:withscores
示例:

反转遍历zset1所有元素

zrevrange zset1 0 -1

附带分数反转遍历zset2所有元素

zrevrange zset2 0 -1 withscores

ZRANGEBYSCORE 分数范围选取

格式:zrangebyscore 参数1 参数2 参数3 参数4 参数5

参数1:zset名称
参数2:最低分
参数3:最高分
参数4:withscores
参数5:limit 起始索引 步长
示例:

检索zset1中60到100分的元素

zrangebyscore zset1 60 90 withscores

附带分数检索zset1中60到100分的元素

zrangebyscore zset1 60 90 withscores

检索zset1中60到100分的元素,限制从0开始步长为2

zrangebyscore zset1 60 90 limit 0 2

ZSCORE 检索分数

格式:zscore 参数1 参数2

参数1:zset名称
参数2:元素
示例:

检索zset1中v1元素的分数

zscore zset1 v1

ZCARD

格式:zcard 参数1

参数1:zset名称
示例:

检索zset1元素个数

zcard zset1

ZREM 删除

格式:zrem 参数1 参数2

参数1:zset名称
参数2:元素(可以多个使用空格分隔)
示例:

删除zset1中v1、v2元素

zrem zset1 v1 v2

ZINCRBY 增加分数

格式:zincrby 参数1 参数2 参数3

参数1:zset名称
参数2:分数
参数3:元素
示例:

将zset1中的v1元素的分数增加5分

zincrby zset1 5 v1

ZCOUNT 检索指定分数范围中的元素个数

格式:zcount 参数1 参数2 参数3

参数1:zset名称
参数2:最低分
参数3:最高分
示例:

检索zset1中60到100分的元素个数

zcount zset1 60 100

ZMPOP 弹出

格式:zmpop 参数1 参数2 参数3 参数4

参数1:数量(zset数量)
参数2:zset名称(使用空格分隔)
参数3:max | min
参数4:数量(弹出数量)
示例:

从zset1、zset2中弹出2个最小的元素

zmpop 2 zset1 zset2 min 2

ZRANK 检索索引

格式:zrank 参数1 参数2

参数1:zset名称
参数2:元素
示例:

检索zset1中v1的索引号

zrank zset1 v1

ZREVRANK 检索反转索引

格式:zrevrank 参数1 参数2

参数1:zset名称
参数2:元素
示例:

反转检索zset1中v1的索引号

zrevrank zset1 v1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

princeAladdin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值