知道redis的連接數可以設置 【最大數】、【最大空閑數】、【最小空閑數】
默認的配置是:
private int maxTotal = 8; //最大數
private int maxIdle = 8; //最大空閑數
private int minIdle = 0; //最小空閑數
但是在這個區間里,到底有多少個連接,由什么影響的?
作如下測試:
在redis的命令框里,使用 info clients 命令,可以查看當前有多少個連接數
現在設置 minIdle = 0; maxIdle = 50; maxTotal = 100;
1、打開redis客戶端,在命令框里使用 info clients 命令,可以查看當前有只有1個連接,就是redis客戶端自己的連接
2、此時啟動一個web項目,但是並沒有在瀏覽器里打開對應的網址,使用命令查看,仍然只有1個連接數
3、打開瀏覽器,輸入網址,此時命令查看,有2個連接數了,因為此時訪問了服務器此時連接了redis
4、多打開幾個瀏覽器,都登錄網站,仍然只有2個連接數,因為沒有並發訪問
5、添加了如下代碼,可以多線程並發訪問redis,這時候連接數就會大幅發生改變
@RequestMapping(value = "/bingtest") @ResponseBody public String bingtest(){ for (int i = 0; i < 50000; i++) { Thread thread = new Thread(new Runnable() { @Override public void run() { // 這個方法里有兩次redis的查詢操作 wechatcontent(8L,2); } }); thread.start(); } return "success"; }
循環50次,連接數為7
循環500次,連接數為22
循環5000次,連接數為51
循環50000次,連接數為51
就這樣一直持續了幾分鍾都是51
等過了一會連接數降為了1
再次循環50000次,連接數為101
這是為什么呢?,不用解釋了吧,我覺得大家這么聰明,肯定懂!
所以,我得到的結論是:
1、redis的連接數的大小跟並發量和已有的連接數有關系
2、想要增加redis的性能,不只要設置最大空閑連接數,還要設置最小空閑連接數
原創文章,歡迎轉載,轉載請注明出處!
