ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

redisѧϰ±Ê¼ÇÖ®pipeline
2014-11-24 07:41:57 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:1´Î
Tags£ºredis ѧϰ ±Ê¼Ç pipeline
redisѧϰ±Ê¼ÇÖ®pipeline
redisÊÇÒ»¸öcsģʽµÄtcp server£¬Ê¹ÓúÍhttpÀàËÆµÄÇëÇóÏìӦЭÒé¡£Ò»¸öclient¿ÉÒÔͨ¹ýÒ»¸ösocketÁ¬½Ó·¢Æð¶à¸öÇëÇóÃüÁÿ¸öÇëÇóÃüÁî·¢³öºóclientͨ³£ »á×èÈû²¢µÈ´ýredis·þÎñ´¦Àí£¬redis´¦ÀíÍêºóÇëÇóÃüÁîºó»á½«½á¹ûͨ¹ýÏìÓ¦±¨ÎÄ·µ»Ø¸øclient¡£»ù±¾µÄͨÐŹý³ÌÈçÏÂ
Client: INCR X
Server: 1
Client: INCR X
Server: 2
Client: INCR X
Server: 3
Client: INCR X
Server: 4
»ù ±¾ÉÏËĸöÃüÁîÐèÒª8¸ötcp±¨ÎIJÅÄÜÍê³É¡£ÓÉÓÚͨÐÅ»áÓÐÍøÂçÑÓ³Ù,¼ÙÈç´ÓclientºÍserverÖ®¼äµÄ°ü´«Êäʱ¼äÐèÒª0.125Ãë¡£ÄÇôÉÏÃæµÄËĸöÃü Áî8¸ö±¨ÎÄÖÁÉÙ»áÐèÒª1Ãë²ÅÄÜÍê³É¡£ÕâÑù¼´Ê¹redisÿÃëÄÜ´¦Àí100¸öÃüÁ¶øÎÒÃǵÄclientÒ²Ö»ÄÜÒ»ÃëÖÓ·¢³öËĸöÃüÁî¡£ÕâÏÔʾûÓгä·ÖÀûÓà redisµÄ´¦ÀíÄÜÁ¦¡£³ýÁË¿ÉÒÔÀûÓÃmget,mset Ö®ÀàµÄµ¥ÌõÃüÁî´¦Àí¶à¸ökeyµÄÃüÁîÍâ
ÎÒÃÇ»¹¿ÉÒÔÀûÓÃpipelineµÄ·½Ê½´Óclient´ò°ü¶àÌõÃüÁîÒ»Æð·¢³ö£¬²»ÐèÒªµÈ´ýµ¥ÌõÃüÁîµÄÏìÓ¦·µ»Ø£¬¶øredis·þÎñ¶Ë»á´¦ÀíÍê¶àÌõÃüÁîºó»á½«¶àÌõÃüÁîµÄ´¦Àí½á¹û´ò°üµ½Ò»Æð·µ»Ø¸ø¿Í»§¶Ë¡£Í¨ÐŹý³ÌÈçÏÂ
Client: INCR X
Client: INCR X
Client: INCR X
Client: INCR X
Server: 1
Server: 2
Server: 3
Server: 4
¼Ù Éè²»»áÒòΪtcp ±¨ÎĹý³¤¶ø±»²ð·Ö¡£¿ÉÄÜÁ½¸ötcp±¨ÎľÍÄÜÍê³ÉËÄÌõÃüÁî,client¿ÉÒÔ½«ËĸöincrÃüÁî·Åµ½Ò»¸ötcp±¨ÎÄÒ»Æð·¢ËÍ£¬serverÔò¿ÉÒÔ½«ËÄÌõÃüÁî µÄ´¦Àí½á¹û·Åµ½Ò»¸ötcp±¨ÎÄ·µ»Ø¡£Í¨¹ýpipeline·½Ê½µ±ÓдóÅúÁ¿µÄ²Ù×÷ʱºò¡£ÎÒÃÇ¿ÉÒÔ½ÚÊ¡ºÜ¶àÔ­À´ÀË·ÑÔÚÍøÂçÑÓ³ÙµÄʱ¼ä¡£ÐèҪעÒâµ½ÊÇÓà pipeline·½Ê½´ò°üÃüÁî·¢ËÍ£¬redis±ØÐëÔÚ´¦ÀíÍêËùÓÐÃüÁîǰÏÈ»º´æÆðËùÓÐÃüÁîµÄ´¦Àí½á¹û¡£´ò°üµÄÃüÁîÔ½¶à£¬»º´æÏûºÄÄÚ´æÒ²Ô½¶à¡£ËùÒÔ²¢ÊDz»ÊÇ´ò °üµÄÃüÁîÔ½¶àÔ½ºÃ¡£¾ßÌå¶àÉÙºÏÊÊÐèÒª¸ù¾Ý¾ßÌåÇé¿ö²âÊÔ¡£ÏÂÃæÊǸöjredis¿Í»§¶ËʹÓÃpipelineµÄ²âÊÔ
package jredisStudy;
import org.jredis.JRedis;
import org.jredis.connector.ConnectionSpec;
import org.jredis.ri.alphazero.JRedisClient;
import org.jredis.ri.alphazero.JRedisPipelineService;
import org.jredis.ri.alphazero.connection.DefaultConnectionSpec;
public class PipeLineTest {
public static void main(String[] args) {
long start = System.currentTimeMillis();
usePipeline();
long end = System.currentTimeMillis();
System.out.println(end-start);
start = System.currentTimeMillis();
withoutPipeline();
end = System.currentTimeMillis();
System.out.println(end-start);
}
private static void withoutPipeline()
{
try {
JRedis jredis = new JRedisClient("192.168.56.55",6379);
for(int i =0 ; i < 100000 ; i++)
{
jredis.incr("test2");
}
jredis.quit();
} catch (Exception e) {
}
}
private static void usePipeline() {
try {
ConnectionSpec spec = DefaultConnectionSpec.newSpec("192.168.56.55", 6379, 0, null);
JRedis jredis = new JRedisPipelineService(spec);
for(int i =0 ; i < 100000 ; i++)
{
jredis.incr("test2");
}
jredis.quit();
} catch (Exception e) {
}
}
}
Êä³ö
103408 //ʹÓÃÁËpipeline
104598 //ûÓÐʹÓÃ
²âÊÔ½á¹û²»ÊǺÜÃ÷ÏÔ£¬ÕâÓ¦¸ÃÊǸúÎҵIJâÊÔ»·¾³Óйء£ÎÒÊÇÔÚ×Ô¼ºwinÁ¬½Ó ÐéÄâ»úµÄlinux¡£ÍøÂçÑӳٱȽÏС¡£ËùÒÔpipeline
ÓÅÊÆ²»Ã÷ÏÔ¡£Èç¹ûÍøÂçÑÓ³ÙСµÄ»°£¬×îºÃ»¹ÊDz»ÓÃpipeline¡£³ýÁËÔö¼Ó¸´ÔÓÍ⣬´øÀ´µÄÐÔÄÜÌáÉý²»Ã÷ÏÔ¡£
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºÊý¾Ý¿âÊÂÎñ²¢·¢ÎÊÌâ ÏÂһƪ£ºSQLµãµÎ10¨DʹÓÃwithÓï¾äÀ´Ð´Ò»¸..

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤HyperText Transfer (2025-12-26 07:20:48)
¡¤°ëСʱ¸ã¶® HTTP¡¢HT (2025-12-26 07:20:42)
¡¤CPythonÊÇʲô£¿PyPy (2025-12-26 06:50:09)
¡¤Python|ÈçºÎ°²×°seab (2025-12-26 06:50:06)
¡¤pythonҪѧϰÊý¾Ý·Ö (2025-12-26 06:50:03)