这篇文章继续介绍一下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>