上文介绍reids的安装以及基本概念,本章节主要介绍 Redis的基本使用命令的使用
Redis 是一个基于键值对(KEY - VALUE)存储的高性能数据库。在这种存储模式下,数据以键(KEY)和值(VALUE)的形式进行组织和存储。
redis中命令不区分大小写
进入redis中
redis-cli
root@iZbp122ygczhdyhc5r271kZ:~# redis-cli
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379>
SET
命令用于在 Redis 中设置一个键值对。基本语法是SET key value
[
1)set方法
127.0.0.1:6379> set key1 value1
OK
127.0.0.1:6379> set key2 value2
OK
127.0.0.1:6379> set key3 value3
OK
2)过期时间设置(EX 和 PX)
EX
用于设置键值对的过期时间,单位是秒。
127.0.0.1:6379> set key4 value4 ex 20
OK
127.0.0.1:6379> ttl key4
(integer) 15
ttl查询剩余多少秒
PX
则是用于设置过期时间,单位是毫秒
127.0.0.1:6379> set key5 value5 px 5000
OK
127.0.0.1:6379> ttl key5
(integer) 2
3)条件设置(NX 和 XX)
NX
(Not eXists)表示只有当键不存在时才设置键值对
127.0.0.1:6379> keys *
1) "key3"
2) "key2"
3) "key1"
127.0.0.1:6379> set key4 value4 nx
OK
127.0.0.1:6379> get key4
1) "value4"
XX
(eXists)与NX
相反,只有当键已经存在时才设置键值对。
GET
命令用于获取指定键(key)对应的的值(value)。如果键不存在,GET
命令会返回nil
。
127.0.0.1:6379> get key1
"value1"
127.0.0.1:6379> get key2
"value2"
127.0.0.1:6379> get key3
"value3"
127.0.0.1:6379> get key4
(nil)
如果存在根据key值 返回对应的value 否则将返回一个
keys
命令是一个用于查找符合特定模式(pattern)的键(keys)的命令。它返回所有与给定模式匹配的键的列表。通配符介绍
*
:可以匹配任意数量(包括零个)的字符。例如,keys *
会返回所有的键,因为它匹配任何键名。而keys user:*
会返回所有以user:
开头的键,像user:1
、user:abc
等都符合这个模式。?
:匹配一个任意的字符。例如,keys user:??
会匹配像user:12
、user:ab
这样长度为固定 4 个字符(user:
加上后面两个任意字符)的键,因为?
只匹配一个字符。先设置好一些值,以便演示
127.0.0.1:6379> set heool 1
OK
127.0.0.1:6379> set hello 2
OK
127.0.0.1:6379> set hllow 3
OK
127.0.0.1:6379> set hallo 4
OK
127.0.0.1:6379> set hhhhhh 5
OK
127.0.0.1:6379> set heool 6
OK
1)?匹配一个字符
127.0.0.1:6379> keys h?llo
1) "hallo"
2) "hello"
2)* 匹配0个或多个字符
127.0.0.1:6379> keys h*
1) "hallo"
2) "heool"
3) "hello"
4) "hhhhhh"
5) "hllow"
3)【abcde】只能匹配abcde,别的不行 相当与固定选项
127.0.0.1:6379> keys h[ab]llo
1) "hallo"
4)【^e】 只有e匹配不了 其他都可以匹配
127.0.0.1:6379> keys h[^e]*
1) "hallo"
2) "hhhhhh"
3) "hllow"
5)【a-b】可以匹配a-b区间的字符 包括俩侧
127.0.0.1:6379> keys h[a-e]llo
1) "hallo"
2) "hello"
注意: KEYS * 慎用 因为为把所有的结果显示出来,有可能会使系统崩溃,导致所有的数据丢失 keys的时间复杂度:O(N)
在 Redis 中,
exists
命令用于检查给定的一个或多个键(keys)是否存在。它返回一个整数值,表示给定键存在的数量。 语法为exists key [key...]
。
127.0.0.1:6379> keys *
1) "hallo"
2) "heool"
3) "hello"
4) "hhhhhh"
5) "hllow"
127.0.0.1:6379> exists hallo
(integer) 1
127.0.0.1:6379> exists hallo heool hello
(integer) 3
127.0.0.1:6379> exists a
(integer) 0
如果存在则返回
1
,不存在返回0
。如果同时检查多个键,它会返回存在的键的数量。 时间复杂度:O(1)
del
命令是 Redis 中用于删除一个或多个键(keys)及其对应的值(values)的命令。其语法是del key [key...]
。
127.0.0.1:6379> keys *
1) "hallo"
2) "heool"
3) "hello"
4) "hhhhhh"
5) "hllow"
127.0.0.1:6379> del hallo
(integer) 1
127.0.0.1:6379> del heool dello
(integer) 1
127.0.0.1:6379> del hhhhhh hllow
(integer) 2
127.0.0.1:6379> del a
(integer) 0
如果键不存在,
del
命令会返回0
,表示没有键被删除;如果键存在并成功删除,会返回1
(如果同时删除多个键,返回成功删除的键的数量)。 时间复杂度:O(1)
在 Redis 中,
expire
命令用于为一个已经存在的键(key)设置过期时间。语法为expire key seconds
,其中key
是要设置过期时间的键,seconds
是过期时间的秒数。
127.0.0.1:6379> keys *
1) "key3"
2) "hello"
3) "key2"
4) "key1"
127.0.0.1:6379> expire key1 10
(integer) 1
127.0.0.1:6379> ttl key1
(integer) 6
127.0.0.1:6379> get key1
(nil)
一旦过期时间到达,Redis 会自动删除这个键值对。 时间复杂度:O(1)
ttl
(Time To Live)命令用于获取一个键(key)的剩余生存时间(以秒为单位)。语法是ttl key
。127.0.0.1:6379> keys *
1) "key3"
2) "hello"
127.0.0.1:6379> expire hello 10
(integer) 1
127.0.0.1:6379> ttl hello
(integer) 6
127.0.0.1:6379> ttl hello
(integer) -2
127.0.0.1:6379> ttl key3
(integer) -1
127.0.0.1:6379> get hello
(nil)
ttl
命令返回-1
;如果键已经过期,ttl
命令返回-2
。惰性删除(Lazy Deletion):
GET
、SET
等)之前,Redis 会先删除这个过期的键,然后返回键不存在的结果(如nil
)。GET key
操作时,Redis 内部会有一个检查机制,先判断键是否过期。如果key
已经过期,Redis 会执行删除操作,然后返回nil
,就好像这个键从来不存在一样。定期删除
结语: 写博客不仅仅是为了分享学习经历,同时这也有利于我巩固知识点,总结该知识点,由于作者水平有限,对文章有任何问题的还请指出,接受大家的批评,让我改进。同时也希望读者们不吝啬你们的点赞+收藏+关注,你们的鼓励是我创作的最大动力!