亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

兩種模式

它有兩種主要模式:

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

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

命令行使用

方法:

$ redis-cli incr mycounter
(integer) 7

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

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

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

方法2

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

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

方法3

$ redis-cli --raw incr mycounter
9

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

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

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

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

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

  • -r <count>:運行命令的次數(shù)
  • -i <delay>
    • 每隔幾秒運行一次命令。
    • 默認情況下,間隔(或延遲)設(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$ 

示例

要永遠運行相同的命令,請使用-1作為 count。因此,為了隨時間監(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 輸出

有時您可能希望使用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)出整個數(shù)據(jù)庫,而只能運行帶有 CSV 輸出的單個命令。

交互模式

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

啟動

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

$ redis-cli
127.0.0.1:6379> ping
PONG

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

當您連接到的服務(wù)器發(fā)生變化時,或者當您在數(shù)據(jù)庫編號為零的數(shù)據(jù)庫上進行操作時,提示會發(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通過指定我們要連接的主機名和端口,在交互模式下使用該命令可以連接到不同的實例:

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

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

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 總是會嘗試透明地重新連接:如果嘗試失敗,則顯示錯誤并進入斷開連接狀態(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í)行重新連接時,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 進行測試時,這通常不是問題,但您應(yīng)該了解此限制。

運行相同的命令 N 次

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

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

清除終端屏幕

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

特殊操作模式

-x

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

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

在這里插入圖片描述

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

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

$ 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ù)點之間的差異。您可以輕松了解內(nèi)存使用情況、客戶端連接等情況。

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

-hotkeys:找出server中熱點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選項使用scan命令對redis的鍵進行采樣,從中找到內(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選項一樣,使用SCAN命令
  • 因此如果數(shù)據(jù)集發(fā)生變化,可能會多次報告鍵,但如果自迭代開始以來該鍵就存在,則不會丟失任何鍵
$ 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用于僅打印輸出的第一行。

掃描能夠使用帶有選項的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命令管道輸出可用于按鍵名計算特定類型的對象:

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

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

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

–latency

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

實例

例如當前拓撲結(jié)構(gòu)如下圖所示。客戶端B和Redis在機房B,客戶端A在機房A,機房A和機房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比較遠,平均網(wǎng)絡(luò)延遲會稍微高一些

–latency-history

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

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ù)控制時間間隔,比如:

[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

  • 該選項會使用統(tǒng)計圖表的形式從控制臺輸出延遲統(tǒng)計信息
$ 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àn):

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

–slave:從機模式

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

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

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

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

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

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

設(shè)置–slave選項的客戶端會出現(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選項用于將命令封裝成Redis通信協(xié)議定義的數(shù)據(jù)格式,批量發(fā)送給Redis執(zhí)行。

–raw和–no-raw

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

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

[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選項,就會返回中文:

[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?鍵值對(key-value)數(shù)據(jù)庫實現(xiàn)方法

    Redis?鍵值對(key-value)數(shù)據(jù)庫實現(xiàn)方法

    Redis 的鍵值對中的 key 就是字符串對象,而 value 可以是字符串對象,也可以是集合數(shù)據(jù)類型的對象,比如 List 對象,Hash 對象、Set 對象和 Zset 對象,這篇文章主要介紹了Redis?鍵值對數(shù)據(jù)庫是怎么實現(xiàn)的,需要的朋友可以參考下
    2024-05-05
  • 解析redis hash應(yīng)用場景和常用命令

    解析redis hash應(yīng)用場景和常用命令

    這篇文章主要介紹了redis hash應(yīng)用場景和常用命令,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Redis操作相關(guān)命令之查看、停止、啟動命令

    Redis操作相關(guān)命令之查看、停止、啟動命令

    這篇文章主要介紹了Redis操作相關(guān)命令之查看、停止、啟動命令,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • redis快照模式_動力節(jié)點Java學(xué)院整理

    redis快照模式_動力節(jié)點Java學(xué)院整理

    這篇文章主要為大家詳細介紹了redis快照模式的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Redis之RedisTemplate配置方式(序列和反序列化)

    Redis之RedisTemplate配置方式(序列和反序列化)

    這篇文章主要介紹了Redis之RedisTemplate配置方式(序列和反序列化),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Redis的使用模式之計數(shù)器模式實例

    Redis的使用模式之計數(shù)器模式實例

    這篇文章主要介紹了Redis的使用模式之計數(shù)器模式實例,本文講解了匯總計數(shù)器、按時間匯總的計數(shù)器、速度控制、使用 Hash 數(shù)據(jù)類型維護大量計數(shù)器等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 利用控制臺如何對Redis執(zhí)行增刪改查命令

    利用控制臺如何對Redis執(zhí)行增刪改查命令

    這篇文章主要給大家介紹了關(guān)于利用控制臺如何對Redis執(zhí)行增刪改查命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • Redis高并發(fā)場景下秒殺超賣解決方案(秒殺場景)

    Redis高并發(fā)場景下秒殺超賣解決方案(秒殺場景)

    早起的12306購票,剛被開發(fā)出來使用的時候,12306會經(jīng)常出現(xiàn)超賣 這種現(xiàn)象,也就是說車票只剩10張了,卻被20個人買到了,這種現(xiàn)象就是超賣,今天通過本文給大家介紹Redis高并發(fā)場景下秒殺超賣解決方案,感興趣的朋友一起看看吧
    2022-04-04
  • Redis開啟鍵空間通知實現(xiàn)超時通知的步驟詳解

    Redis開啟鍵空間通知實現(xiàn)超時通知的步驟詳解

    這篇文章主要介紹了Redis開啟鍵空間通知實現(xiàn)超時通知的步驟,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • redis+lua實現(xiàn)分布式限流的示例

    redis+lua實現(xiàn)分布式限流的示例

    本文主要介紹了redis+lua實現(xiàn)分布式限流的示例,可以實現(xiàn)復(fù)雜的限流邏輯,如滑動窗口限流,并且避免了多步操作導(dǎo)致的并發(fā)問題,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03

最新評論