最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

redis中redis-cli使用小結(jié)

 更新時(shí)間:2023年10月24日 10:38:43   作者:OceanStar的學(xué)習(xí)筆記  
redis-cli 是Redis命令行界面,一個(gè)簡單的程序,允許直接從終端向Redis發(fā)送命令,并讀取服務(wù)器發(fā)送的回復(fù),本文主要介紹了redis中redis-cli使用小結(jié),感興趣的可以了解一下

redis-cli 是Redis命令行界面,一個(gè)簡單的程序,允許直接從終端向Redis發(fā)送命令,并讀取服務(wù)器發(fā)送的回復(fù)。

  • redis數(shù)據(jù)庫對命令大小寫不敏感,ping、Ping、PING是同一個(gè)命令
  • redis數(shù)據(jù)庫對變量大小寫敏感,A、a是兩個(gè)變量

兩種模式

它有兩種主要模式:

  • 一種交互模式,其中有一個(gè) REPL(讀取評估打印循環(huán)),用戶可以在其中鍵入命令并獲得回復(fù);
  • 另一種模式,其中命令作為 的參數(shù)發(fā)送redis-cli、執(zhí)行并打印在標(biāo)準(zhǔn)輸出上

在交互模式下,redis-cli具有基本的行編輯功能,提供良好的打字體驗(yàn)。

命令行使用

方法:

$ redis-cli incr mycounter
(integer) 7

命令的回復(fù)是“7”。由于 Redis 回復(fù)是類型化的(它們可以是字符串、數(shù)組、整數(shù)、NULL、錯(cuò)誤等),您會在括號中看到回復(fù)的類型。

然而,當(dāng)redis-cli必須將的輸出用作另一個(gè)命令的輸入時(shí),或者當(dāng)我們想要將其重定向到文件時(shí),這并不是一個(gè)好主意。

實(shí)際上redis-cli只顯示附加信息,當(dāng)它檢測到標(biāo)準(zhǔn)輸出是一個(gè) tty(基本上是一個(gè)終端)時(shí),可以提高人類的可讀性。否則它將自動啟用原始輸出模式,如方法2所示

方法2

$ redis-cli incr mycounter > /tmp/output.txt
$ cat /tmp/output.txt
8

(integer)由于 CLI 檢測到輸出不再寫入終端,因此輸出中省略了該時(shí)間。您甚至可以使用以下–raw選項(xiàng)在終端上強(qiáng)制原始輸出,如方法3所示

方法3

$ redis-cli --raw incr mycounter
9

類似地,您可以使用–no-raw.

主機(jī)、端口、密碼和數(shù)據(jù)庫

  • 默認(rèn)情況下redis-cli,通過127.0.0.1 端口 6379 連接到服務(wù)器。
  • 可以使用命令行選項(xiàng)輕松更改此設(shè)置。要指定不同的主機(jī)名或 IP 地址,請使用-h. 要設(shè)置不同的端口,請使用-p.
$ redis-cli -h redis15.localnet.org -p 6390 ping
PONG
  • 如果您的實(shí)例受密碼保護(hù),該-a <password>選項(xiàng)將執(zhí)行身份驗(yàn)證,從而無需顯式使用AUTH命令:
$ redis-cli -a myUnguessablePazzzzzword123 ping
PONG
  • 最后,可以使用以下-n <dbnum>選項(xiàng)發(fā)送對數(shù)據(jù)庫編號而不是默認(rèn)編號零進(jìn)行操作的命令:
$ redis-cli flushall
OK
$ redis-cli -n 1 incr a
(integer) 1
$ redis-cli -n 1 incr a
(integer) 2
$ redis-cli -n 2 incr a
(integer) 1
  • 也可以通過使用-u <uri>選項(xiàng)和有效的 URI來提供部分或全部信息:
$ redis-cli -u redis://p%40ssw0rd@redis-16379.hosted.com:16379/0 ping
PONG

連續(xù)運(yùn)行相同的命令

可以在用戶選擇的兩次執(zhí)行之間暫停的情況下,將同一命令執(zhí)行指定的次數(shù)

  • -r <count>:運(yùn)行命令的次數(shù)
  • -i <delay>
    • 每隔幾秒運(yùn)行一次命令。
    • 默認(rèn)情況下,間隔(或延遲)設(shè)置為 0,因此命令會盡快執(zhí)行
    • 注意:-i的單位是秒,不支持毫秒,如果想每隔10毫秒執(zhí)行一次,可以用-i 0.01

示例:對foo自增5次

$ redis-cli -r 5 incr foo
(integer) 1
(integer) 2
(integer) 3
(integer) 4
(integer) 5

示例:執(zhí)行三次ping

bogon:~ ww$ redis-cli -r 3 ping
PONG
PONG
PONG
bogon:~ ww$ 

示例:每隔1秒執(zhí)行一次ping,執(zhí)行五次

bogon:~ ww$ redis-cli -r 5 -i 1 ping
PONG
PONG
PONG
PONG
PONG
bogon:~ ww$ 

示例

要永遠(yuǎn)運(yùn)行相同的命令,請使用-1作為 count。因此,為了隨時(shí)間監(jiān)控 RSS 內(nèi)存大小,可以使用如下命令:

$ redis-cli -r -1 -i 1 INFO | grep rss_human
used_memory_rss_human:1.38M
used_memory_rss_human:1.38M
used_memory_rss_human:1.38M
... a new line will be printed each second ...

CSV 輸出

有時(shí)您可能希望使用redis-cli以快速將數(shù)據(jù)從 Redis 導(dǎo)出到外部程序。這可以使用 CSV(逗號分隔值)輸出功能來完成:

$ redis-cli lpush mylist a b c d
(integer) 4
$ redis-cli --csv lrange mylist 0 -1
"d","c","b","a"

目前不可能像那樣導(dǎo)出整個(gè)數(shù)據(jù)庫,而只能運(yùn)行帶有 CSV 輸出的單個(gè)命令。

交互模式

在交互模式下,用戶在提示符下鍵入 Redis 命令。命令被發(fā)送到服務(wù)器,進(jìn)行處理,回復(fù)被解析并呈現(xiàn)為更簡單的形式以供閱讀。

啟動

在交互模式下運(yùn)行 CLI 不需要什么特別的東西 - 只需啟動它而不帶任何參數(shù),你就在:

$ redis-cli
127.0.0.1:6379> ping
PONG

字符串127.0.0.1:6379>是提示。它提醒您已連接到給定的 Redis 實(shí)例。

當(dāng)您連接到的服務(wù)器發(fā)生變化時(shí),或者當(dāng)您在數(shù)據(jù)庫編號為零的數(shù)據(jù)庫上進(jìn)行操作時(shí),提示會發(fā)生變化:

127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> dbsize
(integer) 1
127.0.0.1:6379[2]> select 0
OK
127.0.0.1:6379> dbsize
(integer) 503

處理連接和重新連接

connect通過指定我們要連接的主機(jī)名和端口,在交互模式下使用該命令可以連接到不同的實(shí)例:

127.0.0.1:6379> connect metal 6379
metal:6379> ping
PONG

如您所見,提示會相應(yīng)更改。如果用戶嘗試連接到無法訪問的實(shí)例,則會redis-cli進(jìn)入斷開連接模式并嘗試使用每個(gè)新命令重新連接:

127.0.0.1:6379> connect 127.0.0.1 9999
Could not connect to Redis at 127.0.0.1:9999: Connection refused
not connected> ping
Could not connect to Redis at 127.0.0.1:9999: Connection refused
not connected> ping
Could not connect to Redis at 127.0.0.1:9999: Connection refused

通常在檢測到斷開連接后,CLI 總是會嘗試透明地重新連接:如果嘗試失敗,則顯示錯(cuò)誤并進(jìn)入斷開連接狀態(tài)。以下是斷開和重新連接的示例:

127.0.0.1:6379> debug restart
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected> ping
PONG
127.0.0.1:6379> (now we are connected again)

執(zhí)行重新連接時(shí),redis-cli自動重新選擇上次選擇的數(shù)據(jù)庫編號。但是,連接的所有其他狀態(tài)都將丟失,例如處于事務(wù)中間的事務(wù)狀態(tài):

$ redis-cli
127.0.0.1:6379> multi
OK
127.0.0.1:6379> ping
QUEUED

( here the server is manually restarted )

127.0.0.1:6379> exec
(error) ERR EXEC without MULTI

在交互模式下使用 CLI 進(jìn)行測試時(shí),這通常不是問題,但您應(yīng)該了解此限制。

運(yùn)行相同的命令 N 次

通過在命令名稱前加上一個(gè)數(shù)字,可以多次運(yùn)行相同的命令:

127.0.0.1:6379> 5 incr mycounter
(integer) 1
(integer) 2
(integer) 3
(integer) 4
(integer) 5

清除終端屏幕

clear在交互模式下使用該命令會清除終端的屏幕。

特殊操作模式

-x

  • –x選項(xiàng)代表從標(biāo)準(zhǔn)輸入(stdin)讀取數(shù)據(jù)作為redis-cli的最后一個(gè)參數(shù),一般與管道符在一起使用。
[root@Redis ~]# echo dbsize|redis-cli -x 
(integer) 14

例如下面的操作會將字符串world作為set hello的值:

在這里插入圖片描述

–stat:連續(xù)統(tǒng)計(jì)模式

–stat選項(xiàng)可以實(shí)時(shí)獲取redis的重要統(tǒng)計(jì)信息,雖然info命令中的統(tǒng)計(jì)信息更全,但是能實(shí)時(shí)看到一些增量的數(shù)據(jù)對redis的運(yùn)維還是有一些幫助的

$ redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys       mem      clients blocked requests            connections
506        1015.00K 1       0       24 (+0)             7
506        1015.00K 1       0       25 (+1)             7
506        3.40M    51      0       60461 (+60436)      57
506        3.40M    51      0       146425 (+85964)     107
507        3.40M    51      0       233844 (+87419)     157
507        3.40M    51      0       321715 (+87871)     207
508        3.40M    51      0       408642 (+86927)     257
508        3.40M    51      0       497038 (+88396)     257

在這里插入圖片描述

在這種模式下,每秒鐘都會打印一條新行,其中包含有用信息和舊數(shù)據(jù)點(diǎn)之間的差異。您可以輕松了解內(nèi)存使用情況、客戶端連接等情況。

-i <interval>在這種情況下,該選項(xiàng)用作修改器,以更改發(fā)出新行的頻率。默認(rèn)值為一秒。

-hotkeys:找出server中熱點(diǎn)key 命令

# Scanning the entire keyspace to find hot keys as well as
# average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).

[00.00%] Hot key 'dd' found so far with counter 4
[00.00%] Hot key 'myset' found so far with counter 5
[00.00%] Hot key 'a' found so far with counter 5
[00.00%] Hot key 'dds' found so far with counter 4
[71.43%] Hot key 'aa' found so far with counter 4
[71.43%] Hot key 'key' found so far with counter 4

-------- summary -------

Sampled 14 keys in the keyspace!
hot key found with counter: 5	keyname: myset
hot key found with counter: 5	keyname: a
hot key found with counter: 4	keyname: dd
hot key found with counter: 4	keyname: dds
hot key found with counter: 4	keyname: aa
hot key found with counter: 4	keyname: key

–bigkeys:掃描大鍵

--bigkeys選項(xiàng)使用scan命令對redis的鍵進(jìn)行采樣,從中找到內(nèi)存占用較大的鍵值,這些鍵可能是系統(tǒng)的瓶頸

$ redis-cli --bigkeys

# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).

[00.00%] Biggest string found so far 'key-419' with 3 bytes
[05.14%] Biggest list   found so far 'mylist' with 100004 items
[35.77%] Biggest string found so far 'counter:__rand_int__' with 6 bytes
[73.91%] Biggest hash   found so far 'myobject' with 3 fields

-------- summary -------

Sampled 506 keys in the keyspace!
Total key length in bytes is 3452 (avg len 6.82)

Biggest string found 'counter:__rand_int__' has 6 bytes
Biggest   list found 'mylist' has 100004 items
Biggest   hash found 'myobject' has 3 fields

504 strings with 1403 bytes (99.60% of keys, avg size 2.78)
1 lists with 100004 items (00.20% of keys, avg size 100004.00)
0 sets with 0 members (00.00% of keys, avg size 0.00)
1 hashs with 3 fields (00.20% of keys, avg size 3.00)
0 zsets with 0 members (00.00% of keys, avg size 0.00)

–scan:掃描指定模式的鍵

  • 此模式與該–bigkeys選項(xiàng)一樣,使用SCAN命令
  • 因此如果數(shù)據(jù)集發(fā)生變化,可能會多次報(bào)告鍵,但如果自迭代開始以來該鍵就存在,則不會丟失任何鍵
$ redis-cli --scan | head -10
key-419
key-71
key-236
key-50
key-38
key-458
key-453
key-499
key-446
key-371

請注意,head -10用于僅打印輸出的第一行。

掃描能夠使用帶有選項(xiàng)的SCAN命令的底層模式匹配功能–pattern。

$ redis-cli --scan --pattern '*-11*'
key-114
key-117
key-118
key-113
key-115
key-112
key-119
key-11
key-111
key-110
key-116

通過wc命令管道輸出可用于按鍵名計(jì)算特定類型的對象:

$ redis-cli --scan --pattern 'user:*' | wc -l
3829433

監(jiān)控Redis實(shí)例的延遲

redis通常用于延遲非常關(guān)鍵的環(huán)境中。延遲涉及應(yīng)用程序的多個(gè)移動部分,從客戶端庫到網(wǎng)絡(luò)堆棧,再到redis實(shí)例本身

–latency

  • 測試客戶端到目標(biāo)Redis的網(wǎng)絡(luò)延遲

實(shí)例

例如當(dāng)前拓?fù)浣Y(jié)構(gòu)如下圖所示??蛻舳薆和Redis在機(jī)房B,客戶端A在機(jī)房A,機(jī)房A和機(jī)房B是跨地區(qū)的

在這里插入圖片描述

客戶端B:

[root@Redis ~]# redis-cli --latency
min: 0, max: 1, avg: 0.07 (824 samples)

客戶端A:

[root@chenxing2 redis]# redis-cli -h 192.168.71.135 --latency
min: 0, max: 1, avg: 0.33 (113 samples)

可以看到客戶端A由于距離Redis比較遠(yuǎn),平均網(wǎng)絡(luò)延遲會稍微高一些

–latency-history

–latency的執(zhí)行結(jié)果只有一條,如果想以分時(shí)段的形式了解延遲信息,可以使用 --latency-history 選項(xiàng):

redis-cli -h 127.0.0.1 -p 6379 --latency-history
min: 0, max: 2, avg: 0.27 (1301 samples) -- 15.01 seconds range
min: 0, max: 2, avg: 0.27 (1301 samples) -- 15.00 seconds range
.
.
.
min: 0, max: 1, avg: 0.28 (1308 samples) -- 15.00 seconds range

可以看出,每15秒輸出一次,可以通過-i參數(shù)控制時(shí)間間隔,比如:

[root@chenxing2 redis]#  redis-cli -h 127.0.0.1 -p 6379 --latency-history -i 1  //一秒輸出一次
min: 0, max: 1, avg: 0.27 (92 samples) -- 1.00 seconds range
min: 0, max: 1, avg: 0.23 (91 samples) -- 1.00 seconds range

–latency-dist

  • 該選項(xiàng)會使用統(tǒng)計(jì)圖表的形式從控制臺輸出延遲統(tǒng)計(jì)信息
$ redis-cli --latency-dist
(output not displayed, requires a color terminal, try it!)

–rdb:導(dǎo)入rdb文件

root@hylaz:~# redis-cli --rdb rdb.log
SYNC sent to master, writing 344 bytes to 'rdb.log'
Transfer finished with success.

該命令選項(xiàng)實(shí)現(xiàn):

  • 向server發(fā)送SYNC命令,返回需要寫的總字節(jié)數(shù)
  • 從server讀取總字節(jié)數(shù)據(jù)寫到指定文件中

–slave:從機(jī)模式

–slave選項(xiàng)是把當(dāng)前客戶端模擬成當(dāng)前redis節(jié)點(diǎn)的從節(jié)點(diǎn),可以用來獲當(dāng)前redis節(jié)點(diǎn)的更新操作

合理的利用這個(gè)選項(xiàng)可以記錄當(dāng)前連接Redis節(jié)點(diǎn)的更新操作,這些更新操作可能是實(shí)際開發(fā)業(yè)務(wù)時(shí)需要的數(shù)據(jù)。

第一個(gè)客戶端使用–slave選項(xiàng),可以看到它會一直處于等待狀態(tài):

[root@Redis ~]# redis-cli --slave
SYNC with master, discarding 1765 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"

另外一些客戶端進(jìn)行一些數(shù)據(jù)的操作:

127.0.0.1:6379> set zj sb
OK
127.0.0.1:6379> del zj
(integer) 1

設(shè)置–slave選項(xiàng)的客戶端會出現(xiàn)這些操作的指示:

[root@Redis ~]# redis-cli --slave
SYNC with master, discarding 1765 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
"PING"
"PING"
"PING"
"PING"
"SELECT","0"
"set","zj","sb"
"PING"
"PING"
"del","zj"

–pipe

–pipe選項(xiàng)用于將命令封裝成Redis通信協(xié)議定義的數(shù)據(jù)格式,批量發(fā)送給Redis執(zhí)行。

–raw和–no-raw

–no-raw選項(xiàng)是要求命令的返回結(jié)果必須是原始的格式,–raw恰恰相反,返回格式化后的結(jié)果。

在Redis中設(shè)置一個(gè)鍵,如果用get或–no-row選項(xiàng),那么返回的結(jié)果是二進(jìn)制格式:

[root@Redis ~]# redis-cli set hello "你好"
OK
[root@Redis ~]# redis-cli get hello
"\xe4\xbd\xa0\xe5\xa5\xbd"
[root@Redis ~]# redis-cli --no-raw get hello
"\xe4\xbd\xa0\xe5\xa5\xbd"

如果使用–raw選項(xiàng),就會返回中文:

[root@Redis ~]# redis-cli --raw get hello
你好

 到此這篇關(guān)于redis中redis-cli使用小結(jié)的文章就介紹到這了,更多相關(guān)redis-cli使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis實(shí)現(xiàn)編碼生成規(guī)則方式

    Redis實(shí)現(xiàn)編碼生成規(guī)則方式

    在自動生成編碼時(shí)應(yīng)采用“MD+年月日+4位序列號”的規(guī)則,如“MD202310130001”,為避免使用隨機(jī)序列號導(dǎo)致的重復(fù)編碼,建議使用從0開始的自增序列號,此外,使用Redis的incrBy功能實(shí)現(xiàn)序列號自增,可以有效提高效率和降低實(shí)現(xiàn)難度
    2023-01-01
  • redis單線程快的原因和原理

    redis單線程快的原因和原理

    在本篇文章中小編給大家整理了關(guān)于redis單線程為什么快的原因和具體實(shí)例,有興趣的朋友們可以參考下。
    2019-06-06
  • Redis的數(shù)據(jù)復(fù)制過程詳解

    Redis的數(shù)據(jù)復(fù)制過程詳解

    Redis 的復(fù)制功能分為同步(sync)和命令傳播(command propagate)這兩個(gè)操作,這篇文章主要介紹了Redis的數(shù)據(jù)復(fù)制,需要的朋友可以參考下
    2022-12-12
  • redis緩存延時(shí)雙刪的原因分析

    redis緩存延時(shí)雙刪的原因分析

    延時(shí)雙刪就是在增刪改某實(shí)體類的時(shí)候,要對該實(shí)體類的緩存進(jìn)行清空,清空的位置在數(shù)據(jù)庫操作方法的前后,這篇文章主要介紹了redis緩存為什么要延時(shí)雙刪,需要的朋友可以參考下
    2022-08-08
  • Redis應(yīng)用之簽到的使用

    Redis應(yīng)用之簽到的使用

    在很多時(shí)候,我們遇到用戶簽到的場景,本文主要介紹了Redis應(yīng)用之簽到的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • k8s部署redis集群搭建過程示例詳解

    k8s部署redis集群搭建過程示例詳解

    這篇文章主要為大家介紹了k8s部署redis集群搭建過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Redis高級數(shù)據(jù)類型Hyperloglog、Bitmap的使用

    Redis高級數(shù)據(jù)類型Hyperloglog、Bitmap的使用

    很多小伙伴在面試中都會被問道 Redis的常用數(shù)據(jù)結(jié)構(gòu)有哪些?可能很大一部分回答都是 string、hash、list、set、zset,但其實(shí)還有Hyperloglog和Bitmap,本文就來介紹一下
    2021-05-05
  • 使用RediSearch實(shí)現(xiàn)在Redis中全文檢索

    使用RediSearch實(shí)現(xiàn)在Redis中全文檢索

    RediSearch?是?Redis?的一個(gè)插件,它為?Redis?數(shù)據(jù)庫添加了全文搜索和查詢功能,使開發(fā)人員能夠在?Redis?中高效地執(zhí)行全文檢索操作,下面我們就來看看是具體如何使用的吧
    2023-08-08
  • Redis不同數(shù)據(jù)類型的命令語句詳解

    Redis不同數(shù)據(jù)類型的命令語句詳解

    這篇文章主要介紹了Redis不同數(shù)據(jù)類型的命令語句,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • 使用Redis實(shí)現(xiàn)用戶積分排行榜的教程

    使用Redis實(shí)現(xiàn)用戶積分排行榜的教程

    這篇文章主要介紹了使用Redis實(shí)現(xiàn)用戶積分排行榜的教程,包括一個(gè)用PHP腳本進(jìn)行操作的例子,需要的朋友可以參考下
    2015-04-04

最新評論

石门县| 金门县| 蒙阴县| 邢台市| 广州市| 通州市| 郴州市| 迁西县| 淅川县| 衢州市| 长阳| 亚东县| 亚东县| 莫力| 同仁县| 彭泽县| 灌云县| 抚州市| 湘西| 托克逊县| 伽师县| 潮安县| 溧阳市| 德昌县| 宜兰市| 德安县| 达拉特旗| 马山县| 兴山县| 凤冈县| 平塘县| 宾川县| 大埔区| 台北市| 名山县| 原阳县| 嘉禾县| 长汀县| 科技| 盐边县| 蒙阴县|