新聞中心

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、寧武網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城網(wǎng)站定制開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為寧武等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
Redis 服務(wù)器通過監(jiān)聽 TCP 端口的方式來接受客戶端的連接。當(dāng)一個連接建立后,Redis 會自動執(zhí)行以下過程:
- 首先客戶端 socket 被設(shè)置為非阻塞模式,這是因為 Redis 在網(wǎng)絡(luò)事件處理上采用了非阻塞式 IO(即 IO 多路復(fù)用模型);
- 其次設(shè)置 socket 的 TCP_NODELAY 屬性,從而禁用 Nagle 算法;
- 最后創(chuàng)建一個可讀的文件事件,用它來監(jiān)聽客戶端 socket 的數(shù)據(jù)發(fā)送。
Redis 使用命令的格式向客戶端輸入數(shù)據(jù),這個數(shù)據(jù)量是非常小的。當(dāng)向客戶端輸入命令后,我們希望能快速的得到服務(wù)器的應(yīng)答,也就是低延時性,但如果開啟了
Nagle算法就會出現(xiàn)頻繁延時的現(xiàn)象,導(dǎo)致用戶體驗極差。
TCP_NODELAY 控制是否開啟 Nagle 算法,該算法可以提高廣域網(wǎng)傳輸效率,減少分組的報文個數(shù),適合傳輸體量較大的數(shù)據(jù)。
Redis IO多路復(fù)用
Redis 的底層是一個單線程模型,單線程指的是使用一個線程來處理所有的網(wǎng)絡(luò)事件請求,這樣就避免了多進(jìn)程或者多線程切換導(dǎo)致的 CPU 消耗,而且也不用考慮各種鎖的問題。
Redis 為了充分利用單線程,加快服務(wù)器的處理速度,它采用 IO 多路復(fù)用模型來處理客戶端與服務(wù)端的連接,這種模型有三種實現(xiàn)方式,分別是 select、poll、epoll。Redis 正是采用 epoll 的方式來監(jiān)控多個 IO 事件。當(dāng)客戶端空閑時,線程處于阻塞狀態(tài);當(dāng)一個或多個 IO 事件觸發(fā)時(客戶端發(fā)起網(wǎng)路連接請求),線程就會從阻塞狀態(tài)喚醒,并同時使用
epoll來輪詢觸發(fā)事件,并依次提交給線程處理。
注意:“多路”指的是多個網(wǎng)絡(luò)連接,“復(fù)用”指的是復(fù)用同一個線程。多路 IO 復(fù)用技術(shù)可以讓單個線程高效的處理多個連接請求。
客戶端最大連接數(shù)
在 Redis 配置文件中,有一個
maxclients的配置項,它指定了連接到 Redis 服務(wù)器的最大客戶端數(shù)量。其默認(rèn)值是 10000。配置項如下所示:
127.0.0.1:6379> config get maxclients 1) "maxclients" 2) "10000" #更改最大連接數(shù)量 127.0.0.1:6379> config set maxclients 20000 OK 127.0.0.1:6379> config get maxclients 1) "maxclients" 2) "20000"
常用命令
| 命令 | 說明 |
|---|---|
| CLIENT LIST | 以列表的形式返回所有連接到 Redis 服務(wù)器的客戶端。 |
| CLIENT SETNAME | 設(shè)置當(dāng)前連接的名稱。 |
| CLIENT GETNAME | 獲取通過 CLIENT SETNAME 命令設(shè)置的服務(wù)名稱。 |
| CLIENT PAUSE | 掛起客戶端連接,將所有客戶端掛起指定的時間(以毫秒為計算)。 |
| CLIENT KILL | 關(guān)閉客戶端連接。 |
| CLIENT ID | 返回當(dāng)前客戶端 ID。 |
| CLIENT REPLY | 控制發(fā)送到當(dāng)前連接的回復(fù),可選值包括 on|off|skip。 |
命令應(yīng)用應(yīng)用
下面看一組簡單的使用示例,如下所示:
127.0.0.1:6379> CLIENT ID (integer) 2557 127.0.0.1:6379> CLIENT LIST id=2556 addr=127.0.0.1:64684 fd=30 name= age=2422 idle=339 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client id=2557 addr=127.0.0.1:49502 fd=43 name= age=537 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 obl=0 oll=0 omem=0 events=r cmd=client 127.0.0.1:6379> CLIENT REPLY ON OK 127.0.0.1:6379> CLIENT SETNAME "www.biancheng.net" OK 127.0.0.1:6379> CLIENT GETNAME "www.biancheng.net" 127.0.0.1:6379> CLIENT KILL 127.0.0.1:49502 OK
本文標(biāo)題:Redis客戶端(client)命令
網(wǎng)站地址:http://fisionsoft.com.cn/article/dpgsipc.html


咨詢
建站咨詢
