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 哨兵集群使用
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'
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 [密碼]
#測試存取大小為 100 位元組的數據包的性能
redis-benchmark -h 192.168.80.10 -p 6379 -q -d 100
#測試本機上 Redis 服務在進行 set 與 lpush 操作時的性能 redis-benchmark -t set,lpush -n 100000 -q
---------------------- 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"
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
127.0.0.1:6379> KEYS * #查看當前資料庫中所有鍵
127.0.0.1:6379> KEYS v* #查看當前資料庫中以 v 開頭的數據
127.0.0.1:6379> KEYS v? #查看當前資料庫中以 v 開頭後麵包含任意一位的數據
127.0.0.1:6379> KEYS v?? #查看當前資料庫中以 v 開頭 v 開頭後麵包含任意兩位的數據
exists 命令可以判斷鍵值是否存在。
127.0.0.1:6379> exists teacher #判斷 teacher 鍵是否存在
(integer) 1 # 1 表示 teacher 鍵是存在
127.0.0.1:6379> exists tea
(integer) 0 # 0 表示 tea 鍵不存在
del 命令可以刪除當前資料庫的指定 key。
127.0.0.1:6379> keys *
127.0.0.1:6379> del v5
127.0.0.1:6379> get v5
type 命令可以獲取 key 對應的 value 值類型。
127.0.0.1:6379> type k1
string
#expire 命令可以為給定的 key 設置過期時間
127.0.0.1:6379> expire k1 10 #設置 k1 鍵的過期時間為 10 秒
#ttl 命令可以查看 key 還有多少秒過期,-1表示永不過期,-2表示已過期
127.0.0.1:6379> ttl k1
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"
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"
dbsize 命令的作用是查看當前資料庫中 key 的數目。
127.0.0.1:6379> dbsize
#使用config set requirepass yourpassword命令設置密碼
127.0.0.1:6379> config set requirepass 123456
#使用config get requirepass命令查看密碼(一旦設置密碼,必須先驗證通過密碼,否則所有操作不可用)
127.0.0.1:6379> auth 123456
127.0.0.1:6379> config get requirepass
---- 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 的資料庫
#多資料庫間移動數據
格式:move 鍵值 序號
127.0.0.1:6379> set k1 100
OK
127.0.0.1:6379> get k1
"100"
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"
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)
#清除資料庫內數據 FLUSHDB :清空當前資料庫數據 FLUSHALL :清空所有資料庫的數據,慎用!