【2023】Redis常用命令

目录

  • 1.键操作命令
    • 1.1.判断键是否存在
    • 1.2.用keys命令查找键
    • 1.3.用scan命令查找键
    • 1.4.重命名键
    • 1.5.删除键
    • 1.5.关于键存活时间命令
  • 2.HyperLogLog相关命令
    • 2.1.用pfadd添加键
    • 2.2.用pfcount统计基数值
    • 2.3.用pfmerge进行合并操作
    • 2.4.统计网站访问人数
  • 3.排序相关命令
    • 3.1.用sort命令进行排序
    • 3.2.用by参数指定排序模式
    • 3.3.用limit参数返回部分排序结果
    • 3.4.get参数用法
    • 3.5.通过store参数提升性能

Redis的主要使用场景是缓存数据,所以本文并不仅局限于语法,还会结合“缓存”的场景给出基于项目的案例。

1.键操作命令

Redis是以键值对的方式来缓存数据的

1.1.判断键是否存在

exists key

返回值为1代表键存在,返回值为0代表键不存在

1.2.用keys命令查找键

keys命令可以用通配符或正则表达式来查找指定模式的键

keys pattern

pattern可以用“?”代替一个字符;用“*”匹配0、1或多个字符;还可以用正则表达式方式匹配

keys n?me
keys id00*

1.3.用scan命令查找键

语法:

scan cursor [MATCH pattern] [COUNT count] [TYPE type]

示例:

127.0.0.1:6379> scan 0
1) "0"
2) 1) "namelist"
   2) "id002"
   3) "name002"
   4) "name003"
   5) "key:__rand_int__"
   6) "id001"
   7) "name001"
   8) "age001"
   9) "age002"

表示从0号游标开始查找键,其中表示返回键数量的COUNT值默认是10,也就是说该命令将从头开始返回10个键的名称。

127.0.0.1:6379> scan 0 MATCH * COUNT 5
1) "5"
2) 1) "namelist"
   2) "id002"
   3) "name002"
   4) "name003"
   5) "key:__rand_int__"

依然是从0号游标开始查找(从头开始),这里用MATCH *表示查找所有类型的键,用COUNT表示返回的数量。实现部分查找。

1.4.重命名键

通过renamerenamenx两个命令可以重命名键

rename key newkey
renamenx key newkey
  • key表示旧的键名,newkey表示新的键名。
  • 对于这两个命令,如果旧键名key不存在,就会返回错误。
  • 对于rename命令,如果命名后的newkey键名已经存在,那么会覆盖旧值。
  • 对于renamenx命令,如果newkey键名已经存在,那么会返回0,不执行修改命令。

1.5.删除键

用del命令删除键后,该键所对应的值也会一并删除

del key [key ...]

1.5.关于键存活时间命令

如果设置了键的生存时间,那么到时间后这个键就会被删除,通过pttlttl命令能查看指定键的生存时间

pttl key
ttl key
  • pttl以毫秒为单位返回该key的生存时间,ttl以秒为单位返回该key的生存时间
  • 如果对应的key不存在,则这两个命令都返回‒2
  • 如果key存在,但没有设置生存时间(一直生存),那么这两条命令返回‒1

2.HyperLogLog相关命令

2.1.用pfadd添加键

通过pfadd命令,能把键值对添加到HyperLogLog对象中,添加后即可进行基数统计。

语法:

PFADD key element [element ...]

2.2.用pfcount统计基数值

用pfcount可以查看一个或多个键的基数

语法:

PFCOUNT key [key ...]

示例:

127.0.0.1:6379> pfadd name1 1 2 3
(integer) 1
127.0.0.1:6379> pfadd name2 3 4 5
(integer) 1
127.0.0.1:6379> pfcount name1 name2
(integer) 5

如果key不存在则返回0

2.3.用pfmerge进行合并操作

通过pfmerge命令,能把多个HyperLogLog合并成一个

语法:

PFMERGE destkey sourcekey [sourcekey ...]

sourcekey是待合并的对象,可以是一个或多个;destkey是合并后HyperLogLog的键,如果合并前destkey不存在,则会新建一个。

示例:

127.0.0.1:6379> PFMERGE name10 name1 name2
OK
127.0.0.1:6379> PFCOUNT name10
(integer) 5

2.4.统计网站访问人数

在网站分析方面有两个统计指标:第一个是统计总访问量,第二个是统计访问人数。统计总访问量比较好办,每来一次访问加1即可,而在统计访问人数时需要去除重复,比如某人在某天内访问了100次,但在统计访问人数时只能算作一次。

通过如下的pfadd和pfcount命令,大家可以掌握用HyperLogLog统计访问人数的做法。

3.排序相关命令

排序是数据库必备的命令,在Redis这种NoSQL数据库里可以通过本节给出的命令对列表、集合与有序集合等格式的数据进行升序或降序的排列操作。

3.1.用sort命令进行排序

在sort命令里,可以通过asc参数进行升序排列操作,通过desc参数进行降序排列操作。

127.0.0.1:6379> LPUSH sa 100 110 150 190 80 140
(integer) 6
127.0.0.1:6379> SORT sa asc
1) "80"
2) "100"
3) "110"
4) "140"
5) "150"
6) "190"
127.0.0.1:6379> SORT sa desc
1) "190"
2) "150"
3) "140"
4) "110"
5) "100"
6) "80"

排序命令不会对列表本身的数据产生影响:

127.0.0.1:6379> LRANGE sa 0 -1
1) "140"
2) "80"
3) "190"
4) "150"
5) "110"
6) "100"

使用sort命令对集合元素进行降序操作:

127.0.0.1:6379> SORT name6 desc alpha
1) "dayi"
2) "dasisi"
3) "dasansan"
4) "daerr"

3.2.用by参数指定排序模式

在之前sort相关的范例中,有的是以数值的方式排序的,如果加上alpha参数,则可以通过字母顺序进行排序,此外还可以通过by参数设置排序的模式。

127.0.0.1:6379> LPUSH vip vip1 vip3 vip2 vip4
(integer) 4
127.0.0.1:6379> SORT vip by vip*
1) "vip1"
2) "vip2"
3) "vip3"
4) "vip4"

这里是对数字进行排序,所以不用加alpha。

3.3.用limit参数返回部分排序结果

在之前的排序操作里,返回的是排好序的所有元素。在一些场景里,无须返回所有的排序结果,而只需返回部分排好序的元素,此时就可以用limit参数。

语法:

[LIMIT offset count]
127.0.0.1:6379> RPUSH num 1 2 4 6 8 9 5
(integer) 7
127.0.0.1:6379> SORT num limit 0 4 asc
1) "1"
2) "2"
3) "4"
4) "5"
127.0.0.1:6379> SORT num limit 3 3 asc
1) "5"
2) "6"
3) "8"

3.4.get参数用法

通过sort命令里的get参数可以用排序的结果作为键,再去获取对应的值。

127.0.0.1:6379> lpush score 100 80 90 85
(integer) 4
127.0.0.1:6379> set 100 Peter-100
OK
127.0.0.1:6379> set 80 Mary-80
OK
127.0.0.1:6379> set 90 Tim-90
OK
127.0.0.1:6379> set 85 John-85
OK
127.0.0.1:6379> sort score  get *
1) "Mary-80"
2) "John-85"
3) "Tim-90"
4) "Peter-100"

3.5.通过store参数提升性能

对于给定的数据对象,如果经常需要用相对固定的模式进行排序,就可以用store参数来缓存结果,这样每次做相同的排序动作时就不需要耗费资源从头做起了,可以从缓存中直接得到结果。

127.0.0.1:6379> sort score desc store score-desc
(integer) 4
127.0.0.1:6379> lrange score-desc 0 -1
1) "100"
2) "90"
3) "85"
4) "80"
127.0.0.1:6379>

sort命令对score进行降序排列,同时还用store参数把排序的结果保存到score-desc里,通过lrange命令能看到缓存结果score-desc对象中的数据。

你可能感兴趣的:(Redis,redis,数据库,缓存)