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