1. 程式人生 > >【redis】常用命令總結

【redis】常用命令總結

開發一個新需求,需要將redis快取從原有的以公司為key替換為以個人為key,在這過程中,接觸到了通過命令列對redis進行操作,之前沒有實戰,正好是個積累學習的過程。

一 . Connection (連線)

  • AUTH (Auth password):通過設定配置檔案中 requirepass 項的值(使用命令 CONFIG SET requirepass password ),可以使用
    密碼來保護 Redis 伺服器。如果開啟了密碼保護的話,在每次連線 Redis 伺服器之後,就要使用 AUTH 命令解鎖,解鎖之後才能使用其他 Redis 命令。如果 AUTH 命令給定的密碼 password 和配置檔案中的密碼相符的話,伺服器會返回 OK 並開始接受命令輸入。另一方面,假如密碼不匹配的話,伺服器將返回一個錯誤,並要求客戶端需重新輸入密碼。
#設定密碼
127.0.0.1:6379> config set requirepass 654321  #將密碼設定為654321
OK
127.0.0.1:6379> quit                           #退出再連線,讓新密碼對客戶端生效
[[email protected] bin]# ./redis-cli -p 6379
127.0.0.1:6379> ping                           #未驗證密碼,提示錯誤,需要驗證
(error) NOAUTH Authentication required.
127.0.0
.1:6379> auth 123456 #密碼錯誤,提示無效的密碼 (error) ERR invalid password 127.0.0.1:6379> auth 654321 #密碼正確,連線成功 OK 127.0.0.1:6379> ping #ping操作命令成功 PONG
  • ECHO (ECHO message):列印一個特定的資訊 message ,測試時使用。
127.0.0.1:6379> echo "hello"
"hello"
127.0.0.1:6379> echo "goodbye" "goodbye"
  • PING :使用客戶端向 Redis 伺服器傳送一個 PING ,如果伺服器運作正常的話,會返回一個 PONG 。通常用於測試與伺服器的連線是否仍然生效,或者用於測量延遲值。
#客戶端與伺服器連線正常
127.0.0.1:6379> ping                          
PONG                                          
#客戶端與伺服器連線不正常(網路不正常或伺服器未能正常執行)
127.0.0.1:6379> ping                          
Could not connect to Redis at 127.0.0.1:6379: Connection refused        
  • SELECT (SELECT index):切換到指定的資料庫,資料庫索引號index用數字值指定,以0作為起始索引值。預設使用0號資料庫。
127.0.0.1:6379> set db_number 0           #預設使用0號資料庫
OK
127.0.0.1:6379> select 1                  #使用1號資料庫
OK
127.0.0.1:6379[1]> get db_number          #已切換至1號資料庫,命令提示符多了[1]
(nil)
127.0.0.1:6379[1]> set db_number 1     
OK
127.0.0.1:6379[1]> get db_number
"1"
127.0.0.1:6379[1]> select 3               #切換至3號資料庫
OK
127.0.0.1:6379[3]> select 0               #命令提示符從[1]變成[3],再切換回預設資料庫
OK
127.0.0.1:6379> 

二 . Server (伺服器)

  • CLIENT GETNAME :返回連線設定的名字。因為新建立的連線預設是沒有名字的, 對於沒有名字的連線, CLIENT GETNAME 返回空白回覆。
127.0.0.1:6379> client getname                #新連線預設沒有名字
(nil)
127.0.0.1:6379> client setname connection1    #設定名字
OK
127.0.0.1:6379> client getname                #返回名字
"connection1"
  • CLIENT LIST :返回所有連線到伺服器的客戶端資訊和統計資料。
127.0.0.1:6379> client list
id=2221941 addr=115.28.**.**:34696 fd=321 name= age=76816 idle=76816 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=2221942 addr=115.28.**.**:34698 fd=322 name= age=76816 idle=76799 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=get
id=2111339 addr=115.28.**.**:54388 fd=87 name= age=251748 idle=251748 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=2261669 addr=115.28.**.**:56662 fd=386 name= age=46217 idle=46217 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=zadd
id=2261670 addr=115.28.**.**:56664 fd=387 name= age=46217 idle=46217 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=2220106 addr=115.28.**.**:34420 fd=302 name= age=78658 idle=76946 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=get

返回多行字串,每個已連線客戶端對應一行,每行字串由一系列 屬性=值 形式的域組成,每個域以空格分開。域的含義如下:

  • addr : 客戶端的地址和埠
  • fd : 套接字所使用的檔案描述符
  • age : 以秒計算的已連線時長
  • idle : 以秒計算的空閒時長
  • flags : 客戶端 flag (N表示未設定任何flag)
  • db : 該客戶端正在使用的資料庫 ID
  • sub : 已訂閱頻道的數量
  • psub : 已訂閱模式的數量
  • multi : 在事務中被執行的命令數量
  • qbuf : 查詢快取的長度( 0 表示沒有查詢在等待)
  • qbuf-free : 查詢快取的剩餘空間( 0 表示沒有剩餘空間)
  • obl : 輸出快取的長度
  • oll : 輸出列表的長度(當輸出快取沒有剩餘空間時,回覆被入隊到這個佇列裡)
  • omem : 輸出快取的記憶體佔用量
  • events : 檔案描述符事件
  • cmd : 最近一次執行的命令

  • CLIENT KILL ip:port:關閉地址為ip:port的客戶端。因為 Redis 使用單執行緒設計,所以當 Redis 正在執行命令的時候,不會有客戶端被斷開連線。如果要被斷開連線的客戶端正在執行命令,那麼當這個命令執行之後,在傳送下一個命令的時候,它就會收到一個網路錯誤,告知它自身的連線已被關閉。

  • CONFIG GET (CONFIG GET parameter) :用於獲取redis伺服器的配置引數。在2.4版本中,有些引數無法通過CONFIG GET訪問,但在2.6版本中,所有的配置引數都可以用CONFIG GET訪問。

# 查詢所有的配置項
127.0.0.1:6379> config get *
  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) "654321"
  5) "masterauth"
  6) ""
  7) "cluster-announce-ip"
  8) ""
  9) "unixsocket"
 10) ""
 11) "logfile"
 12) "/var/redis/log/redis.log"
 13) "pidfile"
 14) "/var/redis/run/redis_6379.pid"
 15) "slave-announce-ip"
 16) ""

#查詢所有以s開頭的配置項
127.0.0.1:6379> config get s*
 1) "slave-announce-ip"
 2) ""
 3) "set-max-intset-entries"
 4) "512"
 5) "slowlog-log-slower-than"
 6) "10000"
 7) "slowlog-max-len"
 8) "128"
 9) "slave-priority"
10) "100"
11) "slave-announce-port"
12) "0"
13) "slave-serve-stale-data"
14) "yes"
15) "slave-read-only"
16) "yes"
17) "stop-writes-on-bgsave-error"
18) "no"
19) "slave-lazy-flush"
20) "no"
21) "supervised"
22) "no"
23) "syslog-facility"
24) "local0"
25) "save"
26) "900 1 300 10 60 10000"
27) "slaveof"
28) ""

#獲取指定配置項
127.0.0.1:6379> config get save
1) "save"
2) "900 1 300 10 60 10000"
#上面 save 引數的三個值表示:在 900 秒內最少有 1 個 key 被改動,
或者 300 秒內最少有 10 個 key 被改動,又或者 60 秒內最少有 1000 個 key 被改動,
以上三個條件隨便滿足一個,就觸發一次儲存操作。
  • CONFIG RESTART :重置 INFO 命令中的某些統計資料,包括:
Keyspace hits (鍵空間命中次數)
Keyspace misses (鍵空間不命中次數)
Number of commands processed (執行命令的次數)
Number of connections received (連線伺服器的次數)
Number of expired keys (過期key的數量)
Number of rejected connections (被拒絕的連線數量)
Latest fork(2) time(最後執行 fork(2) 的時間)
The aof_delayed_fsync counter(aof_delayed_fsync 計數器的值)
  • CONFIG REWRITE :對啟動 Redis 伺服器時所指定的 redis.conf 檔案進行改寫:因為 CONFIG SET 命令可以對伺服器的當前配置進行修改, 而修改後的配置可能和 redis.conf 檔案中所描述的配置不一樣, CONFIG REWRITE 的作用就是通過儘可能少的修改, 將伺服器當前所使用的配置記錄到 redis.conf 檔案中。
    對 redis.conf 檔案的重寫是原子性的, 並且是一致的: 如果重寫出錯或重寫期間伺服器崩潰, 那麼重寫失敗, 原有 redis.conf 檔案不會被修改。 如果重寫成功, 那麼 redis.conf 檔案為重寫後的新檔案。

  • CONFIG SET :可以動態地調整 Redis 伺服器的配置(configuration)而無須重啟。

  • DBSIZE :返回當前資料庫的 key 的數量。

  • FLUSHALL:清空整個 Redis 伺服器的資料(刪除所有資料庫的所有 key )。此命令從不失敗。

  • FLUSHDB :清空當前資料庫中的所有 key。此命令從不失敗。

  • INFO [section]:返回關於 Redis 伺服器的各種資訊和統計數值。通過給定可選的引數 section ,可以讓命令只返回某一部分的資訊.

  • FLUSHDB :清空當前資料庫中的所有 key。此命令從不失敗。

三. Key(鍵)

  • Keys pattern:查詢所有符合給定模式 pattern 的 key 。

  • DEL key [key …] :刪除給定的一個或多個 key 。不存在的 key 會被忽略。

  • Type key :返回 key 所儲存的值的型別。

  • EXISTS key :檢查指定key是否存在

  • EXPIRE key seconds:為給定 key 設定生存時間,當 key 過期時(生存時間為 0 ),它會被自動刪除。

  • DUMP key :序列化給定 key ,並返回被序列化的值,如果值不存在,返回nil,否則,返回序列化之後的值。

  • RESTORE key ttl serialized-value:反序列化給定的序列化值,並將它和給定的 key 關聯。引數 ttl 以毫秒為單位為 key 設定生存時間;如果 ttl 為 0 ,那麼不設定生存時間。

#匹配資料庫中所有key
127.0.0.1:6379> keys unreadAskForPriceCache*
  1) "unreadAskForPriceCache:8748"
  2) "unreadAskForPriceCache:386"
  3) "unreadAskForPriceCache:37"

#匹配以unreadAskForPriceCache開頭的key
127.0.0.1:6379> keys unreadAskForPriceCache*
  1) "unreadAskForPriceCache:8748"
  2) "unreadAskForPriceCache:386"
  3) "unreadAskForPriceCache:37"

#檢視key的型別
127.0.0.1:6379> type unreadAskForPriceCache:295
zset

#刪除指定key
127.0.0.1:6379> del unreadAskForPriceCache:295
(integer) 1

#序列化給定 key
127.0.0.1:6379> dump userAccount:w256
"\x00\xc3A\x83B0\x11{\"employeeId\":305,\xe0\x00\x10\x0eCity\":\"9\",\"[email protected]\x03\x0fName\":null,\"shor\x80\x0f\x00\" !\x04isUse A\x001 \n\nnsertPerson \x1c\x[email protected]\x1d`\x12\x01Ti\xe0\x01=\x05update\x
e0\x04$\x80\x12\xe0\x03$\x0bisShipper\":0`\r\x02ell\xe0\x01\x0c\x06torehou l\xa0\x1e\x04Manag\xa0\r\x05deptKe \xbf\x80\xac\x00n`\xb8\t\"\xe9\x82\xb1\xe6\xb5\xa9\xe6\xa5\xa0 \x93\x02cod \xcb\x04\"w256 \r\x06address\xc0/\x06postalC`\"\x80A\tofficePhon 5\x80\x12\x04mobil\xc0\x12\n\"[email protected]\x04email\xc0( K\x00t\xe0\x[email protected]\x99Ak\x02\"10A\x1a\x03regiA'\x80R\x06provinc\xe0\x00,\x06orderNo`\xe0\x02sex\xc0&\x[email protected]\x9c\xe0\x00\xaf\x02mem $\x[email protected]\x0b\x001\xe0\x03\x0c\x002\xe0\x03\x0c\x003\xe0\x03\x0c\x004\xe0\x03\x0c\x02num\xc0\x[email protected]\xa3\x02293A(\x[email protected]\x0f\x010}\b\x00\xbc%\xce\xe4yN\xdb\x95"

#反序列化給定的序列化值
127.0.0.1:6379> restore userAccout:256 0 "\x00\xc3A\x83B0\x11{\"employeeId\":305,\xe0\x00\x10\x0eCity\":\"9\",\"[email protected]\x03\x0fName\":null,\"shor\x80\x0f\x00\" !\x04isUse A\x001 \n\nnsertPerson \x1c\
[email protected]\x1d`\x12\x01Ti\xe0\x01=\x05update\xe0\x04$\x80\x12\xe0\x03$\x0bisShipper\":0`\r\x02ell\xe0\x01\x0c\x06torehou l\xa0\x1e\x04Manag\xa0\r\x05deptKe \xbf\x80\xac\x00n`\xb8\t\"\xe9\x82\xb1\xe6\xb5\xa9\xe6\xa5\xa0 \x93\x02cod \xcb\x04\"w256 \r\x06address\xc0/\x06postalC`\"\x80A\tofficePhon 5\x80\x12\x04mobil\xc0\x12\n\"[email protected]\x04email\xc0( K\x00t\xe0\x[email protected]\x99Ak\x02\"10A\x1a\x03regiA'\x80R\x06provinc\xe0\x00,\x06orderNo`\xe0\x02sex\xc0&\x[email protected]\x9c\xe0\x00\xaf\x02mem $\x[email protected]\x0b\x001\xe0\x03\x0c\x002\xe0\x03\x0c\x003\xe0\x03\x0c\x004\xe0\x03\x0c\x02num\xc0\x[email protected]\xa3\x02293A(\x[email protected]\x0f\x010}\b\x00\xbc%\xce\xe4yN\xdb\x95"OK
127.0.0.1:6379> get userAccount:256
"{\"employeeId\":220,\"employeeCity\":\"22\",\"dingdingName\":\"\",\"shorName\":\"\xe4\xbc\x81\xe9\xb9\x85\",\"isUsed\":0,\"insertPerson\":\"70\",\"insertTime\":null,\"updatePerson\":\"70\",\"updat
eTime\":null,\"isShipper\":0,\"isSeller\":0,\"isStorehouser\":0,\"isManager\":0,\"deptKey\":null,\"name\":\"\xe9\x82\xb1\xe6\xb5\xa9\xe6\xa5\xa0\",\"code\":\"256\",\"address\":\"\",\"postalCode\":null,\"officePhone\":\"\",\"mobilePhone\":\"13676961876\",\"email\":\"\",\"state\":null,\"deptId\":\"185\",\"region\":null,\"province\":null,\"orderNo\":0,\"sex\":null,\"areaCodes\":null,\"memo\":null,\"memo1\":null,\"memo2\":null,\"memo3\":null,\"memo4\":null,\"memonum\":null,\"userId\":208,\"companyId\":0}"

#批量刪除所有匹配的key
redis-cli -a uqiauto -p 7001 -n 0 keys "unreadAskForPriceCache*" | xargs redis-cli -a uqiauto -p 7001 -n 0 del

相關推薦

redis常用命令總結

開發一個新需求,需要將redis快取從原有的以公司為key替換為以個人為key,在這過程中,接觸到了通過命令列對redis進行操作,之前沒有實戰,正好是個積累學習的過程。 一 . Connection (連線) AUTH (Auth password):通

Linux 常用命令總結(更新)

通過需求去總結一些命令是記憶的一個好方法,正在實踐中。 對檔案以及資料夾的操作命令: touch test.txt                                   //建立一個

資料庫redis基本命令 redis常用命令大全

redis常用命令大全   1.基於記憶體的key-value資料庫 2.基於c語言編寫的,可以支援多種語言的api //set每秒11萬次,取get 81000次 3.支援資料持久化 4.value可以是

Mysql常用命令

flush mysq tmp pri nec 清除 int 用戶 創建 登錄mysql -uroot -p 查看有哪些數據庫show databases; 創建一個普通用戶 sa ,密碼是 some_passCREATE USER [email protecte

Laravel 常用命令

遷移 war auto 自動 key table rest article 自動更新 自動創建項目 laravel new || laravel new xxx || composer create-project --prefer-dist laravel/larave

MySQL簡單命令總結

MySQL查看數據庫 SHOW DATABASES; 創建數據庫 CREATE DATABASE IF NOT EXISTS 數據庫名; 選擇數據庫 USE 數據庫名; 查看數據庫中的數據表 SHOW TABLES; 刪除數據庫 DROP DATABASE IF EXISTS 數據庫名; 創建一個簡單的數據庫

ROS常用命令

http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem 1. rospack find [package_name] :返回package的地址; 例子: rospack find roscpp 2. roscd [location

效率常用命令整理

Mac 鎖屏(Command+ctrl+q) 檔案可見切換(Command+Shift+. ) Git 退出vim編輯模式(按鍵q或:q+Enter) SublimeText WebStorm in Mac 查詢替換(Command+R) 格式化(Command+

Linux常用命令之ln、chmod、scp

目錄   一、ln 建立軟/硬連結 二、chmod 修改檔案或目錄的許可權 三、scp 不同linux系統之間複製檔案和目錄 一、ln 建立軟/硬連結 它的功能是為某一個檔案在另外一個位置建立一個同步的連結。 當我們需要在不同的目錄,用到相同的檔案時,我們不

Centos常用命令集合

author:咔咔 wechat:fangkangfk   從今天開始逐漸總結命令,幫助工作上使用   vim檔案儲存退出的命令 儲存,不退出vi-----------------------  :w 強制儲存,不退出vi---------

Oracle常用函式總結

一、前言 有那麼一段時間,確切的是有近一年的時間,沒有總結什麼。總覺的簡單的東西不想寫了,如果不深奧,不高階,不繫統就不寫,就這樣,近一年的時間我似乎沒有研究什麼新技術,但也確實實踐了很多之前沒有用過的東西,不過似乎不算深入,說來羞愧的不行。不過現在想想記錄下自己之前用過的哪怕一點點簡單的東

轉載網路命令總結(Cisco Packet Tracer)

原文作者:skybelle 來源:CSDN 原文:https://blog.csdn.net/skybelle/article/details/37724171 正文內容 模式 一般使用者模式Router>enable 特權模式(所有show和ping命令)Router#

Pygame常用操作總結

import pygame # 初始化pygame庫 pygame.init() ———–視窗相關操作———– # 建立視窗 window = pygame.display.set_mode([視

Git常用命令commit提交,push推送,merge,新增分支branch

1.常用操作: 1.新增跟蹤檔案 git add . 或 git add -A 根據ignore的配置,新增跟蹤檔案,其中的.或-A表示新增所有更改過的檔案。 2.檢視狀態 git status 3.提交到本地: git commit -m "說明"

bat常用命令,拷貝檔案或資料夾。

@echo off :: /? 檢視幫助 :: 全拷貝資料夾 :: xcopy /e/y/i/f input output :: 拷貝檔案 :: copy bb.png cc.png :: for 迴圈(for /引數 %變數 in (集) do 命令 :: 這裡寫

轉載常用命令

1、連線命令:conn[ect]用法:conn 使用者名稱/密碼@網路服務名 [as sysdba/sysoper]當用特權使用者身份連線時,必須帶上as sysdba或是 assysoperdisc[onnect]說明:該命令用來斷開與當前資料庫的連線。passw[ord]

Redis常用五種資料型別

redis是一種高階的key:value儲存系統,其中value支援五種資料型別:1.字串(string)2.字串列表(list)3.字串集合(set)4.有序字串集合(sorted set)5.雜湊(

maven--常用命令和POM檔案

【定義】      Maven是一個專案管理和綜合工具。Maven提供了開發人員構建一個完整的生命週期框架。開發團隊可以自動完成專案的基礎工具建設,Maven使用標準的目錄結構和預設構建生命週期。 在多個開發團隊環境時,Maven可以設定按標準在非常短的時間裡完成配置

Git常用命令總結

mda 同時 owa rem resolve fff gin spl 包含 轉自:http://www.cnblogs.com/mengdd/p/4153773.html 查看、添加、提交、刪除、找回,重置修改文件 git help <command> #

Android常用ADB命令總結

1. 檢視當前執行的Activity 方法一: adb shell logcat | grep ActivityManager 方法二: adb shell dumpsys activity activities 2. 檢視安裝包資訊 輸出安裝包資訊: