Redis工作中常用命令,看这一篇就够了

时间:2022-07-25
本文章向大家介绍Redis工作中常用命令,看这一篇就够了,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本文源自 公-众-号 IT老哥 的分享

IT老哥,一个在大厂做高级Java开发的程序员,每天分享技术干货文章

前言

jvm我们讲了两篇文章,为了不让大家学习疲劳,我们几个技术穿插着来讲,我们今天讲讲Redis的各种命令,这篇会把大家日常需要用到的命令全都列出来,满足你们的日常工作需求

redis五大数据类型

redis键(key)

常用命令

命令

注释

keys *

获取所有的key

select 0(库角标)

选择第几个库

move key 0(库角标)

将当前的数据库key移动到某个数据库,目标库有,则不能移动

flush 0(库角标)

清除指定库

randomkey

获取随机key

type key

key的类型

set key value

设置key和value

get key

获取key的value

mset key1 value1 key2 value2

批量设置key、value

mget key1 key2 key3

批量获取value

del key

删除key

exists key

判断是否存在key

expire key second(秒)

给key设置过期时间

pexpire key millisecond (毫秒)

给key设置过期时间

persist key

删除过期时间,持久保存key

String类型

简介

String是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。

String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

String类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

存储结构类似:key:value

常用命令

命令

注释

set key value

设置值

get key

获取值

getrange key start end

获取指定范围的value

getset key value

设置新value,并返回旧value

getbit key offset

获取字符串中某个位置的字符

mget key1 key2

获取多个value

setex key second(秒) value

设置key、value,同时设置过期时间

setnx key value

key不存在时设置key

setrange key offset value

用新value替换老value部分字符,从offset开始替换

strlen key

获取value长度

mset key1 value1 key2 value2

批量设置key、value

msetnx key1 value1 key2 value2

批量设置,当且仅当所有要设置的key都不存在时

psetex key milliseconds(毫秒) value

设置过期时间,单位毫秒

incr key

如果value是数字,使用这个语法使数字自增1

incrby key increment

给value增加指定的值increment

decr key

给value减去1

decrby key decrement

给value减去指定的值decrement

append key value

将value追加到key原来的value尾部

List类型

简介

它是一个字符串链表,left、right都可以插入添加;

如果键不存在,创建新的链表;如果键已存在,新增内容;如果值全移除,对应的键也就消失了。

链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。

key是列表的名称,value是列表。

存储结构类似:key:[value1, value2, value3, value4]

常用命令

命令

注释

blpop key timeout

在timeout时间内,获取并移除列表的第一个元素

brpop key1 timeout

在timeout时间内,获取并移除列表的最后一个元素

brpoplpush source destination timeout

在timeout时间内,从source列表中取出一个值,放到destination列表中

lindex key index

获取列表index位置的值

linsert key BEFORE

AFTER value1 value2

llen key

返回列表的长度

lpop key

获取并移除列表的第一个元素

lpush key value value2

将一个或多个value插入到列表的头部

lpushx key value

当key已经存在的时候,向列表的头部插入value

lrange key start end

获取列表部分数据,从start到end范围

lrem key count value

count>0,从列表的头部开始算起,移除count个value相同的数据;count<0,从列表的尾部开始算起,移除count绝对值个value相同的数据;count=0,全部移除value相同的数据

lset key index value

在列表index位置设置value

ltrim key start end

保留start到end内的数据,其余的全部删除

rpop key

获取并移除列表最后一个元素

rpoplpush source destination

移除source列表最后一个元素,并把该元素添加到destination列表的头部

RPUSH key value1 value2

将一个或多个value添加到列表的尾部

rpushx key value

为已经存在的列表添加值

Hash类型

简介

hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

存储结构类似:key:{field1:value1, field2:value2, field3:value3}

如:HMSET keyName name "redis tutorial" description "redis basic commands for caching"

常用命令

命令

注释

hdel key field1 field2

删除key中一个或多个field及value

hexists key field

查看哈希表key中,指定的field字段是否存在

hget key field

在key中查找filed字段的value值

hgetall key

获取在哈希表中指定 key 的所有字段和值

hincrby key field increment

为哈希表 key 中的指定字段的整数值加上增量increment

hincrbyfloat key field increment

为哈希表 key 中的指定字段的浮点数值加上增量 increment 。

hkeys key

获取所有哈希表中的字段

hlen key

获取哈希表中字段的数量

hmget key field1 field2

获取所有指定字段的值

hmset key field1 value1 field2 value2

同时将多个 field-value对设置到哈希表 key 中

hset key field value

将哈希表 key 中的字段 field 的值设为 value 。

hsetnx key field value

只有在字段 field 不存在时,设置哈希表字段的值。

hvals key

获取哈希表中所有值。

hscan key cursor [MATCH pattern] [COUNT count]

迭代哈希表中的键值对。

set类型

简介

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

存储结构类似:key:("value1", "value2", "value3")

常用命令

命令

注释

sadd key value1 value2

向集合添加一个或多个成员

scard key

获取集合的成员数大小

sdiff key1 key2 key3

返回第一个集合与其他集合之间的差异。

sdiffstore destination key1 key2

返回给定所有集合的差集并存储在 destination 新key中

sinter key1 key2

返回给定所有集合的交集

sinterstore destination key1 key2

返回给定所有集合的交集并存储在 destination 新key中

sismember key value

判断key的集合中是否存在value

smembers key

返回key集合中所有的value

smove source destination value

将 value 元素从 source的key 集合移动到 destination的key 集合中

spop key

随机获取并移除key中的一个value

srandmember key count

随机返回集合中count个value

srem key value1 value2

移除集合中一个或多个value

sunion key1 key2

返回所有给定集合的并集

sunionstore destination key1 key2

所有给定集合的并集存储在 destination key集合中

SSCAN key cursor [MATCH pattern] [COUNT count]

迭代集合中的元素

Zset(sorted set)类型

简介

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

存储结构类似:key:{score1:value1, score2:value2, score3:value3, }

常用命令

命令

注释

zadd key score1 value1 score2 value2

向有序集合添加一个或多个成员,或者更新已存在成员的分数

zcard key

获取有序集合的成员数

zcount key min max

计算在有序集合中指定区间分数的成员数

zincrby key increment value

有序集合中对指定成员的分数加上增量 increment

zinterstore destination numkeys key [key ...]

计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中

zlexcount key min max

在有序集合中计算指定字典区间内成员数量

zrange key start stop [WITHSCORES]

通过索引区间返回有序集合指定区间内的成员

zrangebylex key min max [LIMIT offset count]

通过字典区间返回有序集合的成员

zrangebyscore key min max [WITHSCORES] [LIMIT]

通过分数返回有序集合指定区间内的成员

zrank key value

返回有序集合中指定成员的索引

zrem key value [value ...]

移除有序集合中的一个或多个成员

zremrangebylex key min max

移除有序集合中给定的字典区间的所有成员

zremrangebyrank key start end

移除有序集合中给定的排名区间的所有成员

zremrangebyscore key min max

移除有序集合中给定的分数区间的所有成员

zrevrange key start stop [WITHSCORES]

返回有序集中指定区间内的成员,通过索引,分数从高到低

zrevrangebyscore key max min [WITHSCORES]

返回有序集中指定分数区间内的成员,分数从高到低排序

zrevrank key value

返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

zscore key value

返回有序集中,成员的分数值

zunionstore destination numkeys key [key ...]

计算给定的一个或多个有序集的并集,并存储在新的 key 中

zscan key cursor [MATCH pattern] [COUNT count]

迭代有序集合中的元素(包括元素成员和元素分值)

云服务器云硬盘数据库(包括MySQL、Redis、MongoDB、SQL Server),CDN流量包,短信流量包,cos资源包,消息队列ckafka,点播资源包,实时音视频套餐,网站管家(WAF),大禹BGP高防(包含高防包及高防IP),云解析SSL证书,手游安全MTP移动应用安全云直播等等。