【Redis】Redis基础命令集详解

文章目录
【Redis01】Redis常用命令
一、基础命令
1、ping(心跳命令)
2、get/set(读写键值命令)
3、select(切换数据库)
4、dbsize(查看key数量)
5、flushdb(删除当前库中所有数据)
6、flushall(删除所有DB中的数据)
二、Key 相关操作命令
1、keys
2、exists
3、del
4、rename
5、move
6、type
7、expire/pexpire
8、ttl/pttl
9、persist
10、randomkey
11、scan
三、String型Value操作命令
1、set
2、setex/psetex
3、setnx
4、getset
5、mset/msetnx
6、mget
7、append
8、incr/decr
9、incrby/decrby
10、incrbyfloat
11、strlen
12、getrange
13、setrange
14、位操作命令
15、典型应用场景
四、Hash型Value操作命令
1、hset
2、hget
3、hmset
4、hmget
5、hgetall
6、hsetnx
7、hdel
8、hexists
9、hincrby/hincrbyfloat
10、hkeys/hvals
11、hlen
12、hstrlen
13、应用场景
五、List型Value操作命令
1、lpush/rpush
2、llen
3、lindex
4、lset
5、lrange
6、lpushx/rpushx
7、linsert
8、lpop/rpop
9、blpop/brpop
10、rpoplpush
11、brpoplpush
12、lrem
13、ltrim
14、应用场景
(1)栈
(2)队列
(3)阻塞式消息队列
(4)动态有限集合
六、Set型Value操作命令
1、sadd
2、smembers
3、scard
4、sismember
5、smove
6、srem
7、srandmember
8、spop
9、sdiff/sdiffstore
10、sinter / sinterstore
11、sunion/sunionstore
12、应用场景
(1)动态黑名单
(2)有限随机数
(3)用户画像
七、有序Set型Value操作命令
1、zadd
2、zrange/zrevrange
3、zrangebyscore/zrevrangebyscore
4、zcard
5、zcount
6、zscore
7、zincrby
8、zrank/zrevrank
9、zrem
10、zremrangebyrank
11、zremrangebyscore
12、zrangebylex
13、zlexcount
14、zremrangebylex
15、应用场景
【Redis01】Redis常用命令
一、基础命令
1、ping(心跳命令)
键入ping命令,若看到PONG响应,则说明客户端与Redis的连接时正常的。

2、get/set(读写键值命令)
set key value 会将指定 key-value写入到DB。get key则会读取指定key的value值。

3、select(切换数据库)
redis默认有 16 个数据库。这个在 Redis Desktop Manager(RDM)图形客户端中可以直 观地看到。默认使用的是 0 号 DB,可以通过 select db 索引来切换 DB。如图,切换到1号DB:

4、dbsize(查看key数量)
dbsize 命令可以查看当前数据库中 key 的数量。

5、flushdb(删除当前库中所有数据)
清楚当前DB中的所有数据,不影响其他DB。

6、flushall(删除所有DB中的数据)


二、Key 相关操作命令
1、keys
格式:KEYS pattern

功能:查找所有符合给定模式 pattern 的 key,pattern 为正则表达式。

说明:KEYS 的速度非常快,但在一个大的数据库中使用它可能会阻塞当前服务器的服务。所以生产环境中一般不使用该命令,而使用 scan 命令代替。

如图:查看所有模式与查看所有开头结尾为‘a’的模式

2、exists
格式:EXISTS key

功能:检查给定 key 是否存在。

说明:若 key 存在,返回 1 ,否则返回 0 。

3、del
格式:DEL key [key …]

功能:删除给定的一个或多个 key 。不存在的 key 会被忽略。

说明:返回被删除 key 的数量。

4、rename
l 格式:RENAME key newkey

l 功能:将 key 改名为 newkey。

l 说明:当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。当 newkey 已经存在时, RENAME 命令将覆盖旧值。改名成功时提示 OK ,失败时候返回一个错误。

5、move
l 格式:MOVE key db

l 功能:将当前数据库的 key 移动到给定的数据库 db 当中。

l 说明:如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定 key ,或者 key 不存在于当前数据库,那么 MOVE 没有任何效果。移动成功返回 1 ,失败则返回 0 。

6、type
l 格式:TYPE key

l 功能:返回 key 所储存的值的类型。

l 说明:返回值有以下六种

​ none (key 不存在)

​ string (字符串)

​ list (列表)

​ set (集合)

​ zset (有序集)

​ hash (哈希表)

7、expire/pexpire
l 格式:EXPIRE key seconds

l 功能:为给定 key 设置生存时间。当 key 过期时(生存时间为 0),它会被自动删除。 expire 的时间单位为秒,pexpire 的时间单位为毫秒。在 Redis 中,带有生存时间的 key被称为“易失”(volatile)。

l 说明:生存时间设置成功返回 1。若 key 不存在时返回 0 。rename 操作不会改变 key的生存时间。

8、ttl/pttl
格式:TTL key

功能:TTL, time to live,返回给定 key 的剩余生存时间。

说明:其返回值存在三种可能:

​ 1/当 key 不存在时,返回 -2 。

​ 2/当 key 存在但没有设置剩余生存时间时,返回 -1 。

​ 3/否则,返回 key 的剩余生存时间。ttl 命令返回的时间单位为秒,而 pttl 命令返回的时间单位为毫秒。

9、persist
l 格式:PERSIST key

l 功能:去除给定 key 的生存时间,将这个 key 从“易失的”转换成“持久的”。

l 说明:当生存时间移除成功时,返回 1;若 key 不存在或 key 没有设置生存时间,则返回 0。

10、randomkey
l 格式:RANDOMKEY

l 功能:从当前数据库中随机返回(不删除)一个 key。

l 说明:当数据库不为空时,返回一个 key。当数据库为空时,返回 nil。

11、scan
格式:SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]

功能:用于迭代数据库中的数据库键。其各个选项的意义为:

cursor:本次迭代开始的游标。
pattern :本次迭代要匹配的 key 的模式。
count :本次迭代要从数据集里返回多少元素,默认值为 10 。
type:本次迭代要返回的value 的类型,默认为所有类型。
SCAN 命令是一个基于游标 cursor 的迭代器:SCAN 命令每次被调用之后,都会向用户返回返回一个包含两个元素的数组, 第一个元素是用于进行下一次迭代的新游标,而第二个元素则是一个数组, 这个数组中包含了所有被迭代的元素。用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数,以此来延续之前的迭代过程。当 SCAN 命令的游标参数被设置为 0 时,服务器将开始一次新的迭代。如果新游标返回 0表示迭代已结束。

说明:使用间断的、负数、超出范围或者其他非正常的游标来执行增量式迭代不会造成服务器崩溃。

当数据量很大时,count 的数量的指定可能会不起作用,Redis 会自动调整每次的遍历数目。由于 scan 命令每次执行都只会返回少量元素,所以该命令可以用于生产环境,而不会出现像 KEYS 命令带来的服务器阻塞问题。

增量式迭代命令所使用的算法只保证在数据集的大小有界的情况下迭代才会停止,换句话说,如果被迭代数据集的大小不断地增长的话,增量式迭代命令可能永远也无法完成一次完整迭代。即当一个数据集不断地变大时,想要访问这个数据集中的所有元素就需要做越来越多的工作, 能否结束一个迭代取决于用户执行迭代的速度是否比数据集增长的速度更快。

相关命令:另外还有 3 个 scan 命令用于对三种类型的 value 进行遍历。

hscan:属于 Hash 型 Value 操作命令集合,用于遍历当前 db 中指定 Hash 表的所有 field-value 对。
sscan:属于 Set 型Value 操作命令集合,用于遍历当前 db 中指定 set 集合的所有元素
zscan:属于 ZSet 型 Value 操作命令集合,用于遍历当前 db 中指定有序集合的所有元素(数值与元素值)
三、String型Value操作命令
Redis 存储数据的 Value 可以是一个 String 类型数据。String 类型的Value 是 Redis 中最基本,最常见的类型。String 类型的 Value 中可以存放任意数据,包括数值型,甚至是二进制的图片、音频、视频、序列化对象等。一个 String 类型的 Value 最大是 512M 大小。

1、set
格式:SET key value [EX seconds | PX milliseconds] [NX|XX]

功能:SET 除了可以直接将 key 的值设为 value 外,还可以指定一些参数。

EX seconds:为当前 key 设置过期时间,单位秒。等价于 SETEX 命令。

PX milliseconds:为当前 key 设置过期时间,单位毫秒。等价于 PSETEX 命令

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xhw79

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

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

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

打赏作者

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

抵扣说明:

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

余额充值