Redis 通過(guò)監(jiān)聽一個(gè) TCP 端口或者 Unix socket 的方式來(lái)接收來(lái)自客戶端的連接,當(dāng)一個(gè)連接建立后,Redis 內(nèi)部會(huì)進(jìn)行以下一些操作:
首先,客戶端 socket 會(huì)被設(shè)置為非阻塞模式,因?yàn)?Redis 在網(wǎng)絡(luò)事件處理上采用的是非阻塞多路復(fù)用模型。
然后為這個(gè) socket 設(shè)置 TCP_NODELAY 屬性,禁用 Nagle 算法
然后創(chuàng)建一個(gè)可讀的文件事件用于監(jiān)聽這個(gè)客戶端 socket 的數(shù)據(jù)發(fā)送
最大連接數(shù)
在 Redis2.4 中,最大連接數(shù)是被直接硬編碼在代碼里面的,而在2.6版本中這個(gè)值變成可配置的。
maxclients 的默認(rèn)值是 10000,你也可以在 redis.conf 中對(duì)這個(gè)值進(jìn)行修改。
config get maxclients 1) "maxclients" 2) "10000"
實(shí)例
以下實(shí)例我們?cè)诜?wù)啟動(dòng)時(shí)設(shè)置最大連接數(shù)為 100000:
redis-server --maxclients 100000
客戶端命令
S.N. | 命令 | 描述 |
---|---|---|
1 | CLIENT LIST | 返回連接到 redis 服務(wù)的客戶端列表 |
2 | CLIENT SETNAME | 設(shè)置當(dāng)前連接的名稱 |
3 | CLIENT GETNAME | 獲取通過(guò) CLIENT SETNAME 命令設(shè)置的服務(wù)名稱 |
4 | CLIENT PAUSE | 掛起客戶端連接,指定掛起的時(shí)間以毫秒計(jì) |
5 | CLIENT KILL | 關(guān)閉客戶端連接 |