導航:首頁 > 程序命令 > redis執行命令

redis執行命令

發布時間:2023-03-22 04:14:34

① 如何在linux中查詢redis的數據

1、執行如圖是命令,查看redis服務是否啟動。

② Redis啟動、停止、Redis命令行的操作

1.redis命令

1 redis執行了make install後,redis的課執行文件都會自動復制到 /usr/local/bin 目錄

2 redis-server redis伺服器

3 redis-cli redis命令行客戶端

4 redis-benchmark redis性能測試工具

5 redis-check-aof aof文件修復工具6redis-check-mp rdb文件檢查工具

2.停止 redis 命令 

# 停止Redis命令

redis-cli shutdown

3.啟動 redis 命令

(1). # 啟動 redis-server

redis-server

(2). # 帶配置文件啟動

(3). # 帶配置文件啟動 且指定某幾個配置 配置名稱前加 -- 

 會覆蓋配置文件裡面的值

回到頂部

4.redis命令行客戶端

(1).發送命令

注意:框裡面的是 6379 裡面沒有登錄成功,下面改成了 1123 成功了,因為剛才上面改了埠

(2).命令返回值

狀態回復:pong表示可用

錯誤回復:不知道這個什麼命令

整數回復:多種命令會回復整數

下面的字元串回復,都是賦值了才有。

字元串回復:

多行字元串回復:

③ redis 命令執行過程

redis數據淘汰原理
redis過期數據刪除策略
redis server事件模型
redis cluster mget 引發的討論
redis 3.x windows 集群搭建
redis 命令執行過程
redis string底層數據結構
redis list底層數據結構
redis hash底層數據結構好鬧
redis set底層數據結構
redis zset底層數據結構
redis 客戶端管理
redis 主從同步-slave端
redis 主從同步-master端
redis 主從超時檢測
redis aof持久化
redis rdb持久化
redis 數據恢復過程
redis TTL實現原理
redis cluster集群建立
redis cluster集群選主

 這篇文章的目的是為了描述redis server在處理client命令的執行過程,大概包括流程圖、源碼、以及redis的命令格式說明,redis的通信協議參考自redis的則頌 官網


 整個redis的server端命令執行過程就如下面這個流程圖:



 nread = read(fd, c->querybuf+qblen, readlen);負責讀取命令數,通過processInputBuffer進行下一步處理。


 核心在於processInlineBuffer處理內聯命令,processMultibulkBuffer處理批量命令包括get/set等,核心的processCommand用於執行命令。


 執行命令的過程其實主要是尋找命令對應的執行函數,通過lookupCommand查找對應的執行命令,通過call執行命令。


 負責執行命令 c->cmd->proc 並更新統計信息,執行完成後負責同步數據 propagate


 主要是負責同步數據到AOF文件和slave節點,feedAppendOnlyFile負責友盯罩同步到AOF文件,replicationFeedSlaves負責同步


 AOF涉及的緩存有多份,包括


 包含了命令和對應執行函數的映射關系,應該看上去很清晰命令。



協議的一般格式如下,注意前面的*或者$等字元,結尾的 是分隔符。

其中, 回復中的第二個元素為空。


④ redis 命令在redis中怎麼執行的

首先肯定是打開一個控制台,在windows系統打開控制台的方式很多,我喜歡通過使用快捷方式「win+R」打開「運行」,輸入「cmd」來打開控制台。
在控制台輸入命令
redis-cli
這將打開一個Redis提示
127.0.0.1:6379>
表示已經鏈接上ip:127.0.0.1,埠:6379的Redis服務了
我們可以使用「PING」命令來檢查Redis是否在工作,如下所示:
127.0.0.1:6379>
PING
PONG
127.0.0.1:6379>
表示Redis運行正常。

⑤ 記錄一下redis常用運維命令

語法:[config get xxx]
例如:

同樣的還有config set [屬性] [屬性值] ,給指定屬性值設置參數。

列一下client list中對應的欄位含義:

如果發現idle中對應的值比較高,說明redis的timeout屬性設置有問題。結合config get timeout查看一下超時時間,如果timeout為0,說明已經禁用掉該功能,就有可能導致redis連接數不釋放的問題。

Slow log 的行為由兩個配置參數(configuration parameter)指定,可以通過改寫 redis.conf 文件或者用 CONFIG GET 和 CONFIG SET 命令對它們動態地進行修改。
第一個選項是 slowlog-log-slower-than ,它決定要對執行時間大於多少微秒(microsecond,1秒 = 1,000,000 微秒)的查詢進行記錄。
比如執行以下命令將讓 slow log 記錄所有查詢時間大於等於 100 微秒的查詢:
CONFIG SET slowlog-log-slower-than 100
而以下命令記錄所有查詢時間大於 1000 微秒的查詢:
CONFIG SET slowlog-log-slower-than 1000
另一個選項是 slowlog-max-len ,它決定 slow log 最多能保存多少條日誌, slow log 本身是一個 FIFO 隊列,當隊列大小超首大碼過 slowlog-max-len 時,最舊的一條日誌將被刪除,而最新的一條日誌加入到 slow log ,以此類推。
以下命令讓 slow log 最多保存 1000 條日誌:
CONFIG SET slowlog-max-len 1000
使用 CONFIG GET 命令可以查詢兩個選項的當前值:

查看 slow log
要查看 slow log ,可以使用 SLOWLOG GET 或者 SLOWLOG GET number 命令,前者列印所有 slow log ,最大長度取決於 slowlog-max-len 選項的值,而 SLOWLOG GET number 則只列印指定數仿差量的日誌。
最新的日誌會最先被列印:

為測試需要,將 slowlog-log-slower-than 設成了 10 微秒

日誌的唯一 id 只有在 Redis 伺服器重啟的時候才會重置,這樣可以避免對日誌的重復處理(比如你可能會想在每次發現新的慢查詢時發郵件通知你)。
查看當前日誌的數量
使用命令 SLOWLOG LEN 可以查看當前日誌的數量。
請注意這個值和 slower-max-len 的區別,它們一個是當前日誌的數量,一個是允許記錄的最大日誌的數量。

清空日誌
使用命令 SLOWLOG RESET 可以清空 slow log 。

測試命者哪令事例:
1、redis-benchmark -h 192.168.1.201 -p 6379 -c 100 -n 100000
100個並發連接,100000個請求,檢測host為localhost 埠為6379的redis伺服器性能
2、redis-benchmark -h 192.168.1.201 -p 6379 -q -d 100
測試存取大小為100位元組的數據包的性能
3、redis-benchmark -t set,lpush -n 100000 -q
只測試某些操作的性能
4、redis-benchmark -n 100000 -q script load "redis.call('set','foo','bar')"
只測試某些數值存取的性能

測試結果分析:

參考文檔: http://www.cnblogs.com/silent2012/p/4514901.html
http://www.runoob.com/redis/server-client-list.html
http://dba10g.blog.51cto.com/764602/1846068
http://blog.csdn.net/cxhgg/article/details/67640263

⑥ shell 下執行redis相關操作

redis-cli + redis命令 執行相關redis操作,這種情況經常用在模糊訪問key的場景。因為Redis keys命令支持模式匹配,其他命令不支持稿乎。

       如有時候需要根據一定的模式來模糊刪除key,但是del命令不支持模式匹配,

這時只能結合shell命令來完成了。



[root@localhost ~]#/usr/local/redis-2.6.14/src/鍵伍悉redis-cli get lifekey

"hello"

刪除所有的鍵

[root@localhost src]# pwd

/usr/local/redis-2.6.14/src

[root@localhost src]# ./redis-cli keys"*" | xargs redis-cli del      # 刪除本地 redis

     橘脊  刪除遠程redis上指定的模式匹配鍵

[root@localhost src]# ./redis-cli -h 10.255.209.34-p 16379 -n 11 keys "*:custid" | xargs ./redis-cli -h 10.255.209.34-p 16379 -n 11 del

(integer) 12

導出redis數據到本地文件

[root@localhost src]# ./redis-cli -h 10.255.209.34-p 16379 -n 11 --rdb backup.rdb

shad@�����.

⑦ Redis常用命令五

1、config get requirepass 獲取當前Redis的連接密碼

2、CONFIG GET dir 啟動的redis路徑

3、config set requirepass "123123"  設置當前Redis的連接密碼

4、auth 123123 密碼驗證

5、save 立刻持久化數據到mp.rdb文件中 只管保存,其它不管,全部阻塞

6、bgsave Redis會在後台非同步進行快照操作 可以通過lastsave 命令獲取最後一次成功執行快照的時間

7、flushall 也會產生mp.rdb文件,但是裡面是空的,無意義。

8、AOF  是以日誌的形式記錄每個 寫 操作,AOF和RDB同時存在時,先使用AOF

9、redid-check-aof --fix append only.aof 修復AOF文件

⑧ Redis | Redis 字元串相關命令

Redis 支持多種數據結構,比如 字元串、列表、集合、有序集合 和 哈希 等數據結構。本次我整理了關於 字元串 相關的命令,也就是關於 Strings 相關的命令,如下圖。

上圖中用紅色圈中的部分,就是關於 字元串 相關的命令。如果想要在 Redis 中查看相關的命令也可以使用 help 命令來進行查看,命令如下。

在按下回車後,可以看到相應分類命令的說明,如下圖。

圖中就是部分關於 Strings 相關的部分命令。

常用 Strings 相關命令

為了大家能夠直接復制命令進行測試,下面我就不截圖了。

1、set 命令

set 命令的作用是 設置一個 key 的 value 值

設置 key 對應的字元串類型

上面的命令分別對 key1 設置為 value1,對 key2 設置為 value2。

set 命令除了基本的用法外,還有幾個參數,先來說一下 nx 和 xx 兩個參數。

nx 表示 key 不存在時,執行操作

xx 表示 Key 存在時,執行操作

命令 set k1 v1 nx 表示,當 k1 不存在時,給 k1 設置字元串值為 v1,此時 k1 並不存在,因此該命令被執行;

命令 set k2 v2 xx 表示,當 k2 存在時,給 k2 設置字元串值為 v2,此時 k2 並不存在,因此該命令沒有被執行

再介紹另外兩個參數,分別是 ex 和 px,ex 和 px 是在進行 set 命令時可以設置過期時間的命令

ex 表示 設置的過期時間以秒為單位

px 表示 設置的過期時間以毫秒為單位

2、setnx 命令

setnx 命令的作用是 當指定的鍵不存在時給該鍵設置一個值

該命令類似 set 命令附帶了 nx 參數

在上面的命令中,setnx k1 value1,由於 k1 存在,因此命令沒有被執行,setnx k2 value2,由於 k2 不存在,因此命令被執行。

當命令執行成功,返回值為 1

當命令執行不成功,返回值為 0

3、get 命令

get 命令的作用是 獲取指定 key 的值

該命令已經被多次使用了,演示如下:

4、getset 命令

getset 命令的作用是 設置一個 key 的 value,並獲取設置前的值

該命令相當於 先對指定的 key 進行一次 get 操作,再執行一次 set 操作,兩個命令合並,可以保證原子性。

5、mget 命令

mget 命令的作用是 一次獲取多個 key 的值,如果 key 不存在則返回 nil

可以看到,key3 是不存在的,因此 key3 返回的值是 nil

6、mset 命令

mset 命令的作用是 設置多個key value

7、msetnx 命令

msetnx 命令的作用是 設置多個key value,僅當key不存在時

可以看出,msetnx k4 vv4 k5 vv5 時,此時不存在 k4 和 k5 因此該命令執行成功,在執行 msetnx k4 v4 k5 v5 k6 v6 時,由於 k4 和 k5 已經存在,則使得這條命令執行失敗,因此 k4 和 k5 的值仍然是 vv4 和 vv5,並且沒有 k6 這個 key。

8、incr 命令

incr 命令的作用是 執行原子加1操作

9、decr 命令

decr 命令的作用是 整數原子減1

10、incrby 命令

incrby 命令的作用是 執行原子增加一個整數

11、decrby 命令

decrby 命令的作用是 原子減指定的整數

12、incrbyfloat 命令

incrbyfloat 命令的作用是 執行原子增加一個浮點數

13、setrange 命令

setrange 命令的作用是 修改字元串指定偏移的值

字元串的偏移從 0 開始,hello 的長度為 5,最後 1 個下標為 4,當我們 setrange kstr 6 x 時,我們將 kstr 下標 6 的位置設置為了 x,因此在下標 5 的位置處給了一個 x00,即 ASCII 碼的 0。

14、getrange 命令

getrange 命令的作用是 獲取存儲在key上的值的一個子字元串

下標 -1 為最後一個下標,下標 -2 為倒數第二個下標

15、append 命令

append 命令的作用是 追加一個值到key上

總結

這些基礎的命令當中,除了可以當作基礎的操作 字元串 的命令來用,也有其他方面的用處,比如在高並發當中可以用來設置鎖等。把今天整理的命令完善了一個思維導圖,圖片如下。

⑨ redis啟動,停止

1.直接啟動

進入redis根目錄,執行命令:

#加上『&』號使redis以後台程序方式運行

./redis-server &

2.通過指定配置文件啟動

可以為redis服務啟動指定配置文件,例如配置為/etc/redis/6379.conf

進入redis根目錄,輸入命令:

./redis-server /etc/redis/6379.conf

#如果更改了埠,使用`redis-cli`客戶端連接時,也需要指定埠,例如:

redis-cli -p 6380

後台方式啟動

修改redis.conf,把daemonize no修改成daemonize yes

停止:redis-cli shutdown

查找進程號

ps -ef | grep redis

殺進程

kill -6 pid

redis快照問題錯誤信息如下:

MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

排查與解決步驟:

進入redis使用info命令查看,會發現最後一次快照失敗的信息

rdb_last_bgsave_status:err

處理方法:

1.進入redis臨時關閉配置(如果需要,要再redis.conf上寫上該配置,不然下次重啟redis配置會失效)

config set stop-writes-on-bgsave-error no

⑩ Redis-5-列表與集合的一些常用命令

前文中,介紹了String數據類型的一些常用的命令,那麼下面來看一下一些針對列表與集合的常用命令

列表是Redis中另外一種數據類型,下面我們來看看列表中一些基本的操作命令

語法如下:

將一個或多個值插入到列表key的表頭,如果有多個value,則會按從左到右的順序依次插入表頭,具體使用如下:

來看一下上面的命令,我在第一次執行的時候,報了一個錯,因為我們之前k1對應的值不是一個list,就會報錯.

第二點,lpush命令的返回值是push操作後的list的長度,如上面,我第一次push了3個value進去, 長度就是3,然後又加了兩個.那長度就是5

返回列表key中的指定 區間內的元素,區間以偏移量start和stop指定,start和stop都以0開始,即0代表第一個元素,1代表第二個元素... 以此類推,也可以使用負數作為下標,以-1表示列表的最後一個元素,-2表示倒數第二個元素.... 以此類推,具體使用如下:

rpush和lpush的功能基本一致,只不過rpush中,value是按照從右到左的順序依次插入的,使用如下:

rpop命令,可以移除列表中最後一個元素,並且返回該元素的值,使用如下:

lpop和rpop類似,只不過移除的是列表中的第一個元素,使用如下:

lindex命令,可以返回指定下標對應的元素的值,可以用正數下標,0表示第一個元素,也可以用負數下標, -1表示最後一個元素沖培攔,使用如下:

ltrim命令,可以對一個列表進行修剪,需要指定一個下標開始值和結束值, 不在這個區間的元素都會被刪除掉, 下標的取值和上面都一樣的,使用如下:

BLPOP是阻塞式列表的彈出原語,blpop是lpop的阻塞版本

當給定列表內,沒有任何元素可以供彈出的時候,連接將被blpop命令阻塞, 當 給定的是多個key時,按參數key的先後順序依次檢查各個列表,彈出一個非空列表的第一個元素

使用這個命令的時候,需要指定阻塞的時長,單位是秒,如果在規定時間內沒有元素可供彈出,則阻塞結束,返回結果是key-value的組合,具體使用如下:

來看一下上面的命令,最開始集合是有三個元素的,然後每次給定阻塞時長是5秒,彈出第一個元素,然後一共執行三次,列表中也就沒有元素了,這時候,執行第四次彈出的操作,就可以看到,這里阻塞了5秒中之後,發現,還是沒有可以彈出的元素,然後就阻塞結束,返回nil了

接下來看一些針對集合的操作命令

sadd命令,可以添加一個或多個指定的member元素到集合的key中, 如果值在這個集合中存在的話就忽略掉,如果集合key不存在就先新建集合,然後添加member元素到集合,具體使用如下:

第一個命令添加了v1,v2,然後下面又去添加v2,是直接被忽略掉了,已經存在的元素不會被加進去, 這里的返回值是新添加到集合里的元素的數量,不包括已經存在於集合中的元素

srem命令可以在key集合中移除指定的元素,如果指定的元素不存在,則忽略,如果key集合不存在,則被散胡視為一個空的集合,返回0,使用如下:

sismember可以返回指定的值,是不是這個key裡面的成員 ,使用如下:

v3是不在k1這個集合中的, 所以返回0 , v2存在,就返回1

scard 命令可以返回指定集合中的元素的數量,如下:

可以看到,最開始元素的數量是1,然後添加一個元素進去,再查一下就是2了.

smember命令,可以返回指定key集合中的所有元素,如下:

srandmember命令,傳入key的名稱,然後會隨機返回key集合中的一個元素,從redis2.6開始,這個命令可以指定返回元素的個數(count)

count參數詳解:

如下:

spop命令和srandmember類似,不同的是 spop每次返回的元素都會被從這個集合中移除掉,如下:

sdiff用來取兩中戚個集合的差集,如下:

sdiffstore和sdiff命令基本一致,不同的是會把返回的結果保存在一個新的集合中,使用如下:

sinter命令,用來計算指定集合的交集,如下:

sinterstore命令,和上面的sinter類似,但是會把返回值保存到一個新的集合中,如下:

用來計算集合的並集,如下:

sunionstore和sunion類似,但是會把返回結果保存在一個新的集合中,如下:

關於list和set的一些常用命令就說這么多,主要就是一些添加,刪除,交集並集差集的操作

閱讀全文

與redis執行命令相關的資料

熱點內容
科普中國app怎麼分享 瀏覽:85
51單片機與32單片機比較 瀏覽:416
SQL加密存儲解密 瀏覽:505
電氣工程師把程序加密 瀏覽:795
解壓切東西動畫版 瀏覽:963
點到橢圓的距離演算法 瀏覽:388
新的編譯系統 瀏覽:531
cad替換樣板命令 瀏覽:361
des演算法例子 瀏覽:388
怎麼隱藏系統app 瀏覽:522
怎麼在惠生活查詢定向app 瀏覽:272
windows程序設計核心編程 瀏覽:444
任我充app怎麼開發票 瀏覽:330
人工智慧與編程語言 瀏覽:406
linux網路編程伺服器 瀏覽:800
海爾32cw空調壓縮機電容多大 瀏覽:747
分區加密了該怎麼辦 瀏覽:103
索尼延時拍攝app怎麼導入 瀏覽:226
冰箱冷凍壞了壓縮機一直響 瀏覽:807
windows伺服器如何組建raid0 瀏覽:180