Redis基础操作:正则表达式的支持

这篇文章继续介绍一下Redis基础操作中对于正则表达式的支持情况,本文将以前文讲到过的keys命令为例进行说明。

环境准备

使用容器化方式准备Redis环境应该是最为简单的方式了, 本系列示例中使用Redis的6.0.4版本进行说明。

liumiaocn:~ liumiao$ docker run --rm --name=REDIS -d redis:6.0.4
9ac3dc04b2d09faf32b8576239b821b9041f43936341eb801cde18aa1aa0b855
liumiaocn:~ liumiao$ docker ps |grep REDIS
9ac3dc04b2d0        redis:6.0.4                    "docker-entrypoint.s…"   6 seconds ago       Up 5 seconds        6379/tcp                                       REDIS
liumiaocn:~ liumiao$

进入到启动的名为REDIS的容器之中,使用容器中提供的redis-cli进行连接,即可进行Redis命令的执行了。

liumiaocn:~ liumiao$ docker exec -it REDIS sh
# 
# which redis-cli
/usr/local/bin/redis-cli
# redis-cli
127.0.0.1:6379> 

示例1: *的使用

在前面我们已经使用过keys *用于查询所有的key,这实际就是对于正则的支持。比如我们准备如下6条key-value对,通过keys *可以进行结果的查询

127.0.0.1:6379> keys *
1) "liumiaoliumiao"
2) "liiumiao"
3) "liumiao"
4) "ljumiao"
5) "liumiaocn"
6) "lkumiao"
127.0.0.1:6379>

示例2: 表达式中的*

表达式中也可以使用*,比如上述的准备的情况下

127.0.0.1:6379> keys l*umiao
1) "liumiaoliumiao"
2) "liiumiao"
3) "liumiao"
4) "ljumiao"
5) "lkumiao"
127.0.0.1:6379> 

示例3: ?的使用

在正则中,?用于表示单个字符,比如如下示例:

127.0.0.1:6379> keys l?umiao
1) "liumiao"
2) "ljumiao"
3) "lkumiao"
127.0.0.1:6379> 

示例4: [-]的使用

使用[-]可以指定一个区间,比如类似示例3中,将范围继续缩小,缩小至三个字符的情况

127.0.0.1:6379> keys l[i-k]umiao
1) "liumiao"
2) "ljumiao"
3) "lkumiao"
127.0.0.1:6379>

示例5: []的使用

[]更为常见的使用方式,是选择设定其中的一个,比如这里设定为i和j的情况

127.0.0.1:6379> keys l[ij]umiao
1) "liumiao"
2) "ljumiao"
127.0.0.1:6379> 

示例6: [^]的使用

我们知道^在正则中是非的意思,结合[],比如如下示例:

127.0.0.1:6379> keys l[^i]umiao
1) "ljumiao"
2) "lkumiao"
127.0.0.1:6379> 

猜你喜欢

转载自blog.csdn.net/liumiaocn/article/details/106570044