Redis基础数据类型&命令

key

redis的最基本类型,一般格式为 system-code:moudle-code:busines-key。常用命令

keys

查看当前数据库中的key列表
查看所有未到期的key
image
通过通配符匹配
image

exists

判断key是否存在 1-存在 0-不存在
image

type

获取key对应数据体的数据类型
image

del

删除指定的key数据
image

非阻塞删除key数据
image

ttl

查看key还有多少秒过期,-1永不过期,-2已过期
image

expire

设置key的剩余过期时间,单位秒
image

move key dbindex

将key的数据移动到指定的db数据库【0-15】中
image

select dbindex

切换当前客户端使用的db数据库【0-15】
image

dbsize

查看当前数据库中key的数量
image

flushdb

清空当前数据库的key
image

flushall

清空所有数据库的key
image

string

字符串是一种最基本的Redis值类型

APPEND

如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值(value)的结尾。 如果 key 不存在,那么它将首先创建一个空字符串的key,再执行追加操作,这种情况 APPEND 将类似于 SET 操作
image

DECR

操作数值类型字符串,做减1操作
image

DECRBY

操作数值类型字符串,根据步长做减操作
image

GETRANGE

获取指定范围的字符串内容
image

GETSET

变更字符串内容,并返回变更前的内容
image

INCR

操作数值类型字符串,做加1操作
image

INCRBY

操作数值类型字符串,根据步长做加操作
image

INCRBYFLOAT

操作浮点数值类型字符串,根据步长做加操作
image

LCS(redis.7.x新特性)

字符串内容相同内容匹配
image

mset & mset

批量更新和批量获取
image

msetnx

批量设置内容,仅在key为空时设置成功,多个key为原子性操作
image

set

设置字符串内容,命令格式:SET key value [NX | XX] [GET] [EX seconds | PX milliseconds |
EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL]
image

setnx

设置字符串内容,为空时设置成功
image

setrange

在指定的下标处添加字符串;若key不存在,则新增key,并使用空串补位
image

strlen

获取字符串长度
image

List

Redis列表是简单的字符串列表,按照插入顺序排序

LPUSH

队列左侧插入元素
image

LPUSHX

队列左侧插入元素,仅key存在时插入成功
image

LRANGE

从左侧便利元素内容,命令格式:LRANGE key start stop

LREM

从左侧开始,删除指定数量的元素,当数量为负时表示删除最后插入的元素开始删除
image

LSET

从左侧开始,在指定的下标处插入元素
image

LTRIM

从左侧开始,截取队列指定范围的元素
image

LPOP

从左侧开始,推出指定数量的元素
image

LPOS

从左侧开始,给出指定元素的下标值
image

LINDEX

从左侧开始,根据指定的下标获取元素
image

LINSERT

从左侧开始,在指定元素附件插入元素
image

llen

llen key,查看队列中元素的数量

LMOVE

命令格式:LMOVE source destination <LEFT | RIGHT> <LEFT | RIGHT>
将队列中的元素移除并插入到新的队列
image

LMPOP(redis.7.X新特性)

批量推出多个key中的元素
命令格式:LMPOP numkeys key [key ...] <LEFT | RIGHT> [COUNT count]

队列右侧操作相关命令

RPOP、RPUSH、RPUSHX用法与左侧操作命令类似

队列同步阻塞相关命令

BLMOVE、BLMPOP、BLPOP、BRPOP,用法与非阻塞命令类似。

Set

Redis集合是一个无序的字符串合集,集合内的元素不能重复

sadd

在集合中添加元素
image

scard

返回集合中元素的数量
image

smembers

遍历集合元素
image

sdiff

比较多个集合中不同的元素有哪些,key的顺序不同时,返回的结果不同
image

sdiffstore

统计多个集合中不同的元素,并将统计结果存储在新的集合中
image

sinter

统计多个集合中相同的元素
image

sintercard(redis.7.x新特性)

统计多个集合中相同元素的数量
image

sinterstore

统计多个集合中相同元素,并存储到新的集合中
image

sismember

判断集合中是否存在某个元素
image

smismember

批量判断集合中是否存在某些元素
image

smove

将集合中的某个元素移动到另一个集合中
image

spop

从集合中随机推出指定数量的元素(默认1个)
image

srandmember

从集合中随机返回指定数量(默认1)的元素,若指定数量大于总数量则返回所有数据,若指定数量小于0则按照指定数量的绝对值返回,可能出现重复元素
image

srem

从集合中移除指定的元素
image

sunion

取两个集合去重后的并集
image

sunionstore

取两个集合去重后的并集,并存储在新集合中
image

sscan

通过游标+表达式迭代匹配集合元素
image

hash

Redis Hashes是字符串字段和字符串值之间的映射,所以它们是完美的表示对象的数据类型。

hset

添加hash的key-vlaue内容
image

hget

获取hash数据内容中指定name的内容
image

hgetall

获取整个hash数据的内容
image

hdel

删除hash数据中指定name的内容
image

hexists

判断hash数据中是否存在某个属性
image

hincrby

按步长给hash数据中的数值类型属性做加操作
image

hincrbyfloat

按步长给hash数据中的数值类型属性做加操作,针对浮点数据
image

hkeys

查看hash数据中所有的属性
image

hlen

查看hash数据中的属性数量
image

hmset

添加hash的key-vlaue内容,使用上与hset一致,区别于hmset设置多个键值对时是原子性操作

hmget

一次性获取多个hash数据的键值对
image

hrandfeild

随机获取hash数据的属性值
image

hscan

通过游标+表达式,迭代匹配hash数据
image

hsetnx

在hash数据中添加属性,仅当属性不存在时添加成功
image

hstrlen

获取hash数据中某个属性值内容的长度
image

hvals

获取hash数据中所有键值对的值
image

Sorted sets

Redis有序集合和Redis集合类似,是不包含 相同字符串的合集。它们的差别是,每个有序集合 的成员都关联着一个评分,这个评分用于把有序集 合中的成员按最低分到最高分排列。

zadd

向有序列表中添加元素,格式:ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member
...]

  • XX: 仅仅更新存在的成员,不添加新成员。
  • NX: 不更新存在的成员。只添加新成员。
  • GT:仅当新分数大于当前分数时才更新现有元素。此标志不会阻止添加新元素。
  • LT:仅当新分数小于当前分数时才更新现有元素。此标志不会阻止添加新元素。
  • CH: 修改返回值为发生变化的成员总数,原始是返回新添加成员的总数 (CH 是 changed 的意思)。更改的元素是新添加的成员,已经存在的成员更新分数。 所以在命令中指定的成员有相同的分数将不被计算在内。注:在通常情况下,ZADD返回值只计算新添加成员的数量。
  • INCR: 当ZADD指定这个选项时,成员的操作就等同ZINCRBY命令,对成员的分数进行递增操作。
    image

zcard

统计有序列表中元素的数量
image

zcount

统计有序列表中,匹配分数段中元素的数量
image

zdiff

统计多个集合不一致的元素,命令格式:ZDIFF numkeys key [key ...] [WITHSCORES]
image

zdiffstore

统计多个集合中不一致的元素,并存储到新的结合,用法与sdiffstore一致

zincrby

对集合中指定元素的分数按照步长做加操作
image

zinter

统计多个集合中相同的元素,使用方式与sinter一致

zintercard

统计多个集合中相同的元素的数量,使用方式与sintercard一致

zinterstore

统计多个集合中相同的元素,并存储到新的集合中,使用方式与sinterstore一致

zlexcount

ZLEXCOUNT 命令用于计算有序集合中指定字符串ascll范围内元素之间的元素数量,根据指定字符串的ascll总数与元素名称的ascll总数匹配,(-不包含指定字符串,[-包含指定字符串。
image

zmpop

根据分数排名推出指定数量的元素,命令格式:ZMPOP numkeys key [key ...] <MIN | MAX> [COUNT count]
image

zmscore

获取集合中指定元素的分数
image

zpopmax zpopmin

按照分数大\小排序,推出指定数量的元素,zpop命令的扩展
image

zrandmember

随机获取指定数量(默认1)的元素
image

ZRANGE

输出符合匹配范围的集合元素,命令格式:ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count]
[WITHSCORES]

  • BYSCORE: 按照分数匹配
  • BYLEX: 按照字符串ascll匹配
  • REV:排序反转
  • LIMIT offset count:分页使用
    image

zrangestore

将符合匹配范围的集合元素输出到新的集合中,命令格式:ZRANGESTORE dst src min max [BYSCORE | BYLEX] [REV] [LIMIT offset
count]

zrank

输出集合中指定元素的排名,排名从0开始
image

zrem

移除集合中指定的元素
image

ZREMRANGEBYLEX ZREMRANGEBYRANK ZREMRANGEBYSCORE

分别根据字符串ascll、分数排名、分数范围移除集合中元素,格式如下:
ZREMRANGEBYLEX key min max
ZREMRANGEBYSCORE key min max
ZREMRANGEBYSCORE key min max

zrevrank

输出集合中指定字符串的倒叙排名
image

zscan

根据游标匹配集合元素
image

zscore

获取集合中指定元素的分数
image

zunion

将多个有序集合的元素合并后输出,命令格式:ZUNION numkeys key [key ...] [WEIGHTS weight [weight ...]]
[AGGREGATE <SUM | MIN | MAX>] [WITHSCORES]

  • WEIGHTS:分数权重,默认为1,每个集合元素乘以各集合的权重后做合并
  • AGGREGATE:分数合并方式:SUM-同元素汇总 MIN-取同元素中最小分数 MAX-取同元素中最大值
    image

ZUNIONSTORE

将多个有序集合的元素合并,并存储到新的有序集合中

阻塞命令相关BZMPOP、BZPOPMAX、BZPOPMIN

  • BZMPOP:按照指定的排序方式推出多个队列中指定数量的元素,命令格式:BZMPOP timeout numkeys key [key ...] <MIN | MAX> [COUNT count]
  • BZPOPMAX:按照从大到小的顺序推出多个队列中最大元素,命令格式:BZPOPMAX key [key ...] timeout
  • BZPOPMIN:按照从小到大的顺序推出多个队列中最小元素,命令格式:BZPOPMIN key [key ...] timeout
posted @ 2024-02-23 16:45  周仙僧  阅读(33)  评论(0编辑  收藏  举报