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> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章