Redis 命令工具

来源:https://www.cnblogs.com/sl08/archive/2023/09/24/17725930.html
-Advertisement-
Play Games

Redis 命令工具 redis-server Redis 伺服器啟動命令 redis-cli shutdown 停止服務 redis-benchmark:性能測試工具,用於檢測 Redis 在本機的運行效率 redis-check-aof:修複有問題的 AOF 持久化文件 redis-check- ...


--- Redis 命令工具 ---

 redis-server Redis 伺服器啟動命令
redis-cli shutdown 停止服務
redis-benchmark:性能測試工具,用於檢測 Redis 在本機的運行效率
redis-check-aof:修複有問題的 AOF 持久化文件
redis-check-rdb:修複有問題的 RDB 持久化文件
redis-cli:Redis 客戶端命令行工具
redis-sentinel:Redis 哨兵集群使用

image-20230923171009495

image-20230923171236074

redis-cli 命令行工具

語法:redis-cli -h host -p port [-a password]

-h :指定遠程主機
-p :指定 Redis 服務的埠號
-a :指定密碼,未設置資料庫密碼可以省略-a 選項
若不添加任何選項表示,則使用 127.0.0.1:6379 連接本機上的 Redis 資料庫
​
redis-cli -h 192.168.80.10 -p 6379 -a 'abc123'  

image-20230923172744379

redis-benchmark 測試工具

redis-benchmark 是官方自帶的 Redis 性能測試工具,可以有效的測試 Redis 服務的性能。 基本的測試語法:redis-benchmark [選項] [選項值]。

-h :指定伺服器主機名。
-p :指定伺服器埠。
-s :指定伺服器 socket
-c :指定併發連接數。 
-n :指定請求數。
-d :以位元組的形式指定 SET/GET 值的數據大小。
-k :1=keep alive 0=reconnect 。
-r :SET/GET/INCR 使用隨機 key, SADD 使用隨機值。
-P :通過管道傳輸<numreq>請求。
-q :強制退出 redis。僅顯示 query/sec 值。
--csv :以 CSV 格式輸出。
-l :生成迴圈,永久執行測試。
-t :僅運行以逗號分隔的測試命令列表。
-I :Idle 模式。僅打開 N 個 idle 連接並等待。

#向 IP 地址為 192.168.80.10、埠為 6379 的 Redis 伺服器發送 100 個併發連接與 100000 個請求測試性能

redis-benchmark -h 192.168.80.10 -p 6379 -c 100 -n 100000 -a [密碼]

image-20230924120024027

#測試存取大小為 100 位元組的數據包的性能

redis-benchmark -h 192.168.80.10 -p 6379 -q -d 100 

image-20230924121214836

#測試本機上 Redis 服務在進行 set 與 lpush 操作時的性能 redis-benchmark -t set,lpush -n 100000 -q

image-20230924121732473

---------------------- Redis 資料庫常用命令 ---------------------------------------- set:存放數據,命令格式為 set key value get:獲取數據,命令格式為 get key

127.0.0.1:6379> set teacher zhangsan
OK
127.0.0.1:6379> get teacher
"zhangsan"

image-20230924122356292

keys 命令可以取符合規則的鍵值列表,通常情況可以結合*、?等選項來使用。

#創建鍵與值
127.0.0.1:6379> set k1 1
127.0.0.1:6379> set k2 
127.0.0.1:6379> set k3 3
127.0.0.1:6379> set v1 4
127.0.0.1:6379> set v5 5
127.0.0.1:6379> set v22 5

image-20230924124041337

127.0.0.1:6379> KEYS * #查看當前資料庫中所有鍵

image-20230924124103138

127.0.0.1:6379> KEYS v* #查看當前資料庫中以 v 開頭的數據

image-20230924124146834

127.0.0.1:6379> KEYS v? #查看當前資料庫中以 v 開頭後麵包含任意一位的數據

image-20230924124220814

127.0.0.1:6379> KEYS v?? #查看當前資料庫中以 v 開頭 v 開頭後麵包含任意兩位的數據

image-20230924124318214

exists 命令可以判斷鍵值是否存在。

127.0.0.1:6379> exists teacher      #判斷 teacher 鍵是否存在
(integer) 1                         # 1 表示 teacher 鍵是存在
127.0.0.1:6379> exists tea
(integer) 0                         # 0 表示 tea 鍵不存在

image-20230924124430493

del 命令可以刪除當前資料庫的指定 key。

127.0.0.1:6379> keys *
127.0.0.1:6379> del v5
127.0.0.1:6379> get v5

image-20230924124528204

type 命令可以獲取 key 對應的 value 值類型。

127.0.0.1:6379> type k1
string

image-20230924124807229

#expire 命令可以為給定的 key 設置過期時間

127.0.0.1:6379> expire k1 10        #設置 k1 鍵的過期時間為 10 秒

image-20230924124940797

#ttl 命令可以查看 key 還有多少秒過期,-1表示永不過期,-2表示已過期

127.0.0.1:6379> ttl k1

image-20230924125043232

rename 命令是對已有 key 進行重命名。(覆蓋)

命令格式:rename 源key 目標key 使用rename命令進行重命名時,無論目標key是否存在都進行重命名,且源key的值會覆蓋目標key的值。在實際使用過程中,建議先用 exists 命令查看目標 key 是否存在,然後再決定是否執行 rename 命令,以避免覆蓋重要數據。

127.0.0.1:6379> keys v*
1) "v1"
2) "v22"
127.0.0.1:6379> rename v22 v2
OK
127.0.0.1:6379> keys v*
1) "v1"
2) "v2"
127.0.0.1:6379> get v1
"4"
127.0.0.1:6379> get v2
"5"
127.0.0.1:6379> rename v1 v2
OK
127.0.0.1:6379> get v1
(nil)
127.0.0.1:6379> get v2
"4"

image-20230924133659059

renamenx 命令的作用是對已有 key 進行重命名,並檢測新名是否存在,如果目標 key 存在則不進行重命名。(不覆蓋)

命令格式:renamenx 源key 目標key

127.0.0.1:6379> keys *
127.0.0.1:6379> get teacher
"zhangsan"
127.0.0.1:6379> get v2
"4"
127.0.0.1:6379> renamenx v2 teacher
(integer) 0
127.0.0.1:6379> keys *
127.0.0.1:6379> get teacher
"zhangsan"
127.0.0.1:6379> get v2
"4"

image-20230924134428325

dbsize 命令的作用是查看當前資料庫中 key 的數目。

127.0.0.1:6379> dbsize

image-20230924134511746

#使用config set requirepass yourpassword命令設置密碼

127.0.0.1:6379> config set requirepass 123456

image-20230924134942407

#使用config get requirepass命令查看密碼(一旦設置密碼,必須先驗證通過密碼,否則所有操作不可用)

127.0.0.1:6379> auth 123456
127.0.0.1:6379> config get requirepass

image-20230924135132888

---- Redis 多資料庫常用命令 ----

Redis 支持多資料庫,Redis 預設情況下包含 16 個資料庫,資料庫名稱是用數字 0-15 來依次命名的。 多資料庫相互獨立,互不幹擾。

#多資料庫間切換

命令格式:select 序號 使用 redis-cli 連接 Redis 資料庫後,預設使用的是序號為 0 的資料庫。

127.0.0.1:6379> select 10           #切換至序號為 10 的資料庫
​
127.0.0.1:6379[10]> select 15       #切換至序號為 15 的資料庫
​
127.0.0.1:6379[15]> select 0            #切換至序號為 0 的資料庫

image-20230924135728192

#多資料庫間移動數據

格式:move 鍵值 序號

127.0.0.1:6379> set k1 100
OK
127.0.0.1:6379> get k1
"100"

image-20230924140006191

127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get k1
(nil)
127.0.0.1:6379[1]> select 0         #切換至目標資料庫 0
OK
127.0.0.1:6379> get k1              #查看目標數據是否存在
"100"

image-20230924140147428

127.0.0.1:6379> move k1 1           #將資料庫 0 中 k1 移動到資料庫 1 中
(integer) 1
127.0.0.1:6379> select 1                #切換至目標資料庫 1
OK
127.0.0.1:6379[1]> get k1           #查看被移動數據
"100"
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> get k1              #在資料庫 0 中無法查看到 k1 的值
(nil)

image-20230924140258099

#清除資料庫內數據 FLUSHDB :清空當前資料庫數據 FLUSHALL :清空所有資料庫的數據,慎用!

image-20230924140554119

image-20230924140815070


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 編寫一個App就能編譯發佈到iOS、Android和Web等各大平臺的跨平臺技術,各大廠商一直都有研究和發佈對應技術產品,目前最熱門的莫過於Flutter框架了。而Dart作為其唯一的編程語言,今天我們開始來體驗一下…… ...
  • matplotlib 在1.0版本之前其實是不支持3D圖形繪製的。 後來的版本中,matplotlib加入了3D圖形的支持,不僅僅是為了使數據的展示更加生動和有趣。更重要的是,由於多了一個維度,擴展了其展示數據分佈和關係的能力,可以一次從三個維度來比較數據。 下麵介紹在matplotlib中繪製各類 ...
  • GetTokenInformation 用於檢索進程或線程的令牌(Token)信息。Token是一個數據結構,其包含有關進程或線程的安全上下文,代表當前用戶或服務的安全標識符和許可權信息。GetTokenInformation函數也可以用來獲取這些安全信息,通常用於在運行時檢查某個進程或線程的許可權或安... ...
  • 前置條件 ​ 阿裡雲伺服器一臺(可在購買伺服器時勾選安裝寶塔選項,免去後面的寶塔安裝) ​ 設置阿裡雲伺服器密碼並登陸伺服器 ​ 以下操作均在伺服器Linux中進行(使用遠程連接工具登錄) 寶塔登錄 登錄阿裡雲伺服器在Linux命令行中輸入bt,查看寶塔信息 ​ 根據寶塔信息提供的網站登陸寶塔服務( ...
  • 問題代碼: xmal:一個按鈕+一個顯示框 1 <Button Width="100" Height="50" Margin="10" Click="Button_Click">test</Button> 2 <TextBox x:Name="display" Width="300" Height= ...
  • 大家好,我是沙漠盡頭的狼。 本文首發於Dotnet9,介紹使用Lib.Harmony庫攔截第三方.NET庫方法,達到不修改其源碼並能實現修改方法邏輯、預期行為的效果,並且不限於只攔截public訪問修飾的類及方法,行文目錄: 什麼是方法攔截? 示常式序攔截 非public方法怎麼攔截? 總結 1. ...
  • 周末,寫點簡單的水一下。 新版本的vs創建項目的時候可以選擇自帶一個swagger。然而這隻是基本的swagger功能。 幾個介面無所謂啦,隨著介面越來越多,就這麼丟給你,一時間也會懵逼,所以這篇文章要做的有兩個功能。 給swagger文檔添加註釋 給swagger添加切換“版本”的功能(也可以理解 ...
  • 痞子衡嵌入式半月刊: 第 81 期 這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發佈一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...