±³¾°
µ±½ñIT½çÕý´¦ÓÚÒÆ¶¯»¥ÁªÀ˳±ÖУ¬Ó¿ÏÖ³öÒ»ÅúÅúÓÅÐãµÄÃÅ»§ÍøÕ¾ºÍµçÉÌÆ½Ì¨¡£ÔÚ¾Þ´óµÄÀûÈóÇý¶¯Ï£¬ÕâЩ¹«Ë¾¶¼È«Á¦´òÔì¸÷×ÔµÄϵͳÒÔÊÊÓ¦»¥ÁªÍøÊг¡·¢Õ¹µÄÐèÒª£¬¶øÇÒÔڴ˹ý³ÌÖи÷¸öϵͳ»¹²»Í£µØ½ÓÊÜ×ÅÒÚÍòÍøÃñµÄ¼ìÑé¡£¾Àú¹ýǧ´¸°ÙÁ¶ºó£¬ÄÇЩ¡°ÃûÃÅ´ó³§¡±¶¼·×·××ܽá³ö¡°¸ß¿ÉÓ㬸߿ɿ¿£¬¸ß²¢·¢ÏµÍÑÓ³Ù¡±µÄÓÅÐãʵ¼ù¡£
¶øÄϺ½µçÉÌÓªÏúƽ̨ÕâÖÖ´øÓйúÆó±³¾°ºÍ´«Í³ÐÐÒµÌØÉ«µÄµçÉÌϵͳÔÚÕâ¹ÉÀ˳±µÄÒýÁì֮ϣ¬Ò²Öð²½ÏòÕâЩ¡°´ó³§¡±Ñ§Ï°£¬½áºÏ×ÔÉíµÄʵ¼ÊÇé¿ö£¬ÔÚ¡°¸ß¿ÉÓ㬸߿ɿ¿£¬¸ß²¢·¢ÏµÍÑÓ³Ù¡±µÄϵͳÓÅ»¯Ö®Â·ÉÏÕ¹¿ªÒ»·¬ÓÎÀú̽Ë÷£¬ÆÚ¼äÒ²ÓÎÀÀÁ˲»ÉÙ´ó¿Ó°µ¹µ¡£
ÎÒÃÇÉÌÎñÒÆ¶¯ÍŶÓ×÷Ϊ²¿ÃÅÀïÏȷ沿¶Ó£¬ÔÚ´òÔìÒ»Ì×ÒÔRedisΪ»ù´¡µÄ»º´æÏµÍ³£¨È¡ÃûΪ¡°ºÚê×ʯ¡±£©ÓÃÓÚÖ§³ÅÄϺ½µçÉÌÓªÏúƽ̨£¬°ïÖú¹«Ë¾ÊµÏÖ¡°ÄϺ½eÐС±Õ½ÂÔÄ¿±êµÄ¹ý³ÌÖжÔRedis»·¾³ÖеĿӽ§ÇðÛÖÕ¹¿ªÁËÒ»·¬ÓÎÀú¡£
³õ²½Ë¼¿¼
2015ÄêÊÇÒÆ¶¯µçÉ̵ġ°¾®Åçʽ¡±·¢Õ¹Äê·Ý£¬ÄϺ½µÄ¹Ù·½APP³ÐÊÆ¶øÆð£¬²»¹ýÊÂʵӡ֤ÁËÄǾ仰¡ª¡ª¡°ÀíÏëºÜ·áÂú£¬ÏÖʵºÜ¹Ç¸Ð¡±¡£ÄǸöʱºòAPPµÄºǫ́¼Ü¹¹Êǰ´´«Í³µÄÆóÒµÄÚ²¿Ó¦ÓÃ˼·´î½¨µÄ£¬ÏµÍ³µÄÑз¢Ë¼Â·ÊÇÖ»¹ÜʵÏÖ¹¦ÄÜ£¬²»×¢ÖؽӿÚÐÔÄÜ¡£
ÈÃÈ˾À½áµÄµØ·½±È½Ï¶à£¬Ò»Ê±Èý¿ÌÄÑÒÔ¶ÔÆä½øÐÐÈ«ÃæÓÅ»¯¸ÄÔ죬µ«Éϼ¶Ï´ïµÄKPIÒªÔÚ¶ÌÆÚÄÚÍê³É£¬±ØÐëÒªÔÚ¶Ìʱ¼äÄÚÌáÉýһЩ¹Ø¼ü½Ó¿ÚµÄÐÔÄÜ£¬ÎÒÃǵÚһʱ¼äÏëµ½µÄ¶øÇÒ×îºÃ¿ªµ¶µÄιýÓÚÀàËÆº½°à¶¯Ì¬ºÍ»úƱÐÅÏ¢µÈ²éѯÀ๦Äܽӿڣ¬ÒòΪֻҪ¼ÓÉÏ»º´æ£¬ÐÔÄÜÂíÉÏÄÜ´ó·ù¶ÈÌáÉý¡£
»ùÓÚÕâ·½Ãæ¿¼ÂÇ£¬ÎÒÃǵ±Ê±ÈÏΪµÚÒ»ÒªÎñ¾ÍÊÇÒª´î½¨Ò»Ì×ÄÜÃæÏò»¥ÁªÍøµÄ»º´æÏµÍ³£¬¾¹ý¼¸·¬Ñ¡Ðͺó£¬Ä¿¹â¿ªÊ¼¼¯Öе½Redis-ClusterÉÏ¡£
ÉîÈë̽Ë÷
ÎÒÃÇÔÚ̽Ë÷ÆÚ¼äÒ»±ß·×ÊÁÏ£¬Ò»±ßÔÚ²âÊÔ»·¾³´î½¨ÁËÒ»Ì×Redis-Cluster£¬¾¹ýÒ»¶Îʱ¼äÕÛÌÚºó£¬ÔÚ2016Äê3Ô·ÝÕýʽͶ²úʹÓá£
ÔÚͶ²ú³õÆÚÐÅÐIJ»´ó£¬ËùÒÔÕÒÁËС½Ó¿ÚÀ´³¢ÊÔ£¬»º´æµÄÊý¾ÝÁ¿Ð¡£¨Ð¡ÓÚ1KB£©£¬½á¹¹¼òµ¥£¬»ù±¾¶¼ÊÇһЩϵͳÅäÖÃÐÅÏ¢£¬È繦ÄÜ¿ª¹Ø£¬APP°æ±¾ÐÅÏ¢µÈ£¬Redis-Cluster¶Ô´Ë±íʾºÁÎÞѹÁ¦¡£
½ô½Ó×Å£¬ÔÚ16Äê3Ôµף¬ÎÒÃÇ¿ªÊ¼°ÑRedis-ClusterͶ·Åµ½Õý¹æÕ½³¡ÉÏ£¬±ÈÈ绺´æ»úƱÐÅÏ¢£¬º½°à¶¯Ì¬¸üС£Õâ¸ö½Ó¿ÚÊý¾ÝÁ¿±È֮ǰµÄ´ó£¨50-100KB£©£¬½á¹¹±È½Ï¸´ÔÓ£¬¶øÇÒÊÇÎÒÃǹؼü¹¦ÄܵĺËÐĽӿڡ£Ê¹ÓÃRedis-Cluster»º´æ»úƱÐÅÏ¢ÒÔ¼°ÓÅ»¯Á˽ӿڵÄͨѶÐÒéºó£¬¶Ô²éƱ½Ó¿Ú¼ÓËÙЧ¹ûÊ®·ÖÏÔÖø£¬½Ó¿ÚµÄÏìӦʱ¼ä´Ó7-8Ãë½µµ½Ò»°Ù¶àºÁÃ룬ÔÙÅäºÏIOSºÍ°²×¿¶ËµÄÔÉúÒ³ÃæäÖȾ·½Ê½ÓÅ»¯ºó£¬ÊµÏÖ»úƱÐÅÏ¢"Ãë³ö"£¬Õâ±êÖ¾×ÅÄϺ½ÏµÍ³¿ªÊ¼Ì¤½ø¡°Ã뼫¾ãÀÖ²¿¡±µÄÃż÷¡£ÔÚÒ»´Î¸úÈ«ÃÀº½¿ÕµÄ½»Á÷ÖУ¬»úƱ²éѯµÄËٶȰÑËûÃÇÏÅÁËÒ»Ìø¡££¨µ±Ê±È«ÃÀapp²éһϻúƱÐÅÏ¢ÐèÒª8-9Ã룩
Ó¦¶Ô´óÁ÷Á¿
ÎÒÃǽâ¾öÔÚ³£¹æ·þÎñ״̬ϵĺËÐŦÄܲéѯÀà½Ó¿ÚµÄ·µ»Ø»ºÂýµÄÎÊÌ⣬µ«Õâ½ö½öÊÇ¿ªÊ¼£¬ÒòÎªÒÆ¶¯µçÉÌ×î´óµÄÌØÉ«¾ÍÊǸã´ÙÏú»î¶¯£¬ÏñÃëɱ¡¢³é½±¡¢ÅÉȯµÈµÈ£¬ÕâЩ»î¶¯¶¼»áÒý·¢Ë²Ê±µÄ·ÃÎʸ߷壬·ÃÎÊÁ¿ÍùÍùÊdz£¹æ·þÎñ״̬ϵÄÊ®±¶»òÒÔÉÏ£¬ÄϺ½×Ô2015Äê10ÔÂ28ÈÕ¸ãÁ˵ÚÒ»´Î»áÔ±Èջºó£¬ÍùºóµÄÿÔÂ28ÈÕ¶¼»á¸ãÒ»´Î£¬Ã¿´ÎµÄÁãµã·åÖµ¶¼»á¶ÔÎÒÃÇϵͳÔì³É»ÙÃðÐÔ´ò»÷£¬ÆäʵÕâ¾ÍºÃÏñÒ»¸öû´©Ò·þµÄÈËÔÚ±ùÌìÑ©µØÖÐÐÐ×ßÒ»Ñù£¬ËùÒÔ¼¸ºõÔÚÍê³É½Ó¿ÚÌáËÙµÄͬһʱ¼ä£¬ÎÒÃÇÓÃRedis-Cluster×öÁ˼þ¡°ÃÞ°À¡±ÈÃϵͳ¡°´©¡±ÉÏ¡ª¡ª°ÑËùÓÐÁ÷Á¿×ª¼Þµ½Redis-ClusterÉÏ¡£
ÀûÓÃRedisµÄµ¥Ïß³ÌÔ×ÓÐÔ¹ÜÀí·ÃÎÊÐí¿ÉÖ¤³Ø£¬Ðí¿ÉÖ¤³ØµÄ´óС¸ù¾Ý»î¶¯½Ó¿ÚµÄÐÔÄÜÁé»îµ÷Õû¡£Ö»Óеõ½Ðí¿ÉÖ¤µÄÇëÇó²ÅÄÜ·ÃÎÊÏà¹Ø½Ó¿Ú£¬µ±½Ó¿Ú·µ»Øºó°ÑÐí¿ÉÖ¤ÊÍ·Å»ØÐí¿ÉÖ¤³ØÖУ¬¶øµÃ²»µ½Ðí¿ÉÖ¤µÄÇëÇóÔò½øÈëRedis
blpopµÄµÈ´ý¶ÓÁÐÖС£ ÕâÏî´ëÊ©½áºÏNginx-LuaµÄ·þÎñÉý½µ¼¶ºÍÏÞÁ÷ÈÛ¶Ï»úÖÆ£¨Ö÷Òª±£»¤ÄÇЩд²Ù×÷¹¦ÄÜ£¬±ÈÈçϵ¥£©£¬È·±£ÁËÄϺ½ÓªÏúƽ̨ÔÚÍùºóµÄ»áÔ±ÈÕ»òÆäËû´ó´Ù»î¶¯ÆÚ¼ä³ÐÊÜǧÍò¼¶µÄ·ÃÎÊÁ÷Á¿Ê±ÈÔÄÜÆ½ÎȵØÌṩ·þÎñ¡£
ͨ¹ýÕâÖÖ°ì·¨£¬ÔÚITÍŶӹæÄ£Ô¶Ô¶²»ÈçÄÇЩÓÐÃûÆøµÄµçÉ̹«Ë¾Í¬ÀàϵͳÑз¢ÍŶӵÄÇé¿öÏ£¬¾¹ýÒ»¸öÔµĸÄÔ죬ÎÒÃǰÑÒ»¸öÿ´Î¶¼ÊÇÌÉ׏ýÁãµã¸ß·åµÄϵͳ£¬±ä³É»ù±¾ÉÏÄܰ²°²ÎÈÎȵØÕ¾×ŹýÁãµã¸ß·åµÄϵͳ¡£
È«Ììºò·þÎñ
ÓÉÓÚµ±Ê±Ó¦ÓõÄÎÊÌâ½Ï¶à£¬µ¥Á´Â·»ù±¾ÄÑÒÔ±£Ö¤7*24Сʱ²»¼ä¶Ï·þÎñ£¬ÈýÍ·Á½ÈÕ»á¹òһϣ¬×îÖ±½ÓµÄ´¦Àí·½Ê½¾ÍÊǵ±¼à¿Ø±¨¾¯Ê±ÈÃÔËά°ïÃ¦ÖØÆô¡£¾¡¹ÜÎÒÃÇÓжàÌõÁ´Â·£¬µ«Ò»µ©Ä³ÌõÁ´Â·down»úÖØÆô£¬¹ý³ÌÖп϶¨»áÓ°Ïìµ½²¿·ÖÓû§¡£ÎÒÃÇÍŶӵÄÑз¢×ÊԴʵÔÚÓÐÏÞ£¬¶øÇÒÄǶÎʱ¼äÈ«²¿¾«Á¦·ÅÔÚÈ·±£»áÔ±ÈÕÕâÖÖ´ÙÏú»î¶¯ÉÏ£¨Ö§³ÅÒµÎñ²¿ÃųåKPI£©£¬µ«Õâ¸öÎÊÌâÓÖ²»ÄÜ·ÅÈβ»¹Ü£¬ËùÒÔ²ÉÓñȽÏʡʵķ½Ê½¡ª¡ªÔÚ16ÄêµÄ4Ô³õ£¬ÎÒÃǰѸ÷ÌõÁ´Â·µÄsession״̬ÐÅϢͳһ»º´æµ½Redis-ClusterÖУ¬ÕâÑù¿ÉÒ԰Ѹö±ðÁ´Â·µÄdown»ú¶ÔÓû§µÄÓ°Ïì½µµ½×îµÍ£¬ÁíÍâдÁ˼òµ¥¼à¿Ø½Ó¿ÚÈÃ¼à¿ØÏµÍ³µ÷Ó㬵±¼à¿ØÏµÍ³Í¨¹ýÕâ¸ö½Ó¿Ú·¢ÏÖijÌõÁ´Â·downÁ˾͵÷һϸÃÁ´Â·ÉϵÄÖØÆô½Å±¾¡£
ÕâÑù×öÒ»·½ÃæÎªÍŶÓÕùÈ¡ÁËÐÝϢʱ¼ä£¬²»ÓÃΪ¹ÊÕÏÆ£ÓÚ±¼Ãü£¬¼õÇáÑз¢ÈËԱѹÁ¦£¬ÁíÒ»·½ÃæÆäʵҲËã°ÑϵͳÐÞ³É7*24²»¼ä¶Ï·þÎñÁË£¬×îÖØÒªµÄÊÇÄÜÈÃÍŶÓÓиü³ä·ÖµÄʱ¼äÖÆ¶¨ÓÅ»¯¸ÄÔì¼Æ»®ºÍ·½°¸£¬Ê¹µÃºóÀ´ÎÒÃÇÄÜÔڱȽϴÓÈݵÄÇé¿öÏÂͨ¹ý´úÂë²ãÃæµÄÓÅ»¯ºÍJVMµ÷ÓŵȴëÊ©°ÑÓ¦ÓóöÏֵĸ÷ÖÖÎÊÌâÒ»Ò»½â¾ö¡£
½øÒ»²½ÓÅ»¯
µ±Á´Â·Äܱ£Ö¤7*24Сʱ²»¼ä¶Ï·þÎñºó£¬ÎÒÃÇÓֻعýÍ·À´ÓÅ»¯ÄÇЩ»áÔ±ÈÕºÍÆäËû´ÙÏú»î¶¯ÖÐÓõ½µÄд²Ù×÷¹¦Äܽӿڣ¬Èç϶©µ¥¡¢ÅÉÓÅ»ÝȯºÍÁìÓÅ»Ýȯ֮À࣬ÓÈÆäÓÅ»ÝȯÏà¹ØµÄ½Ó¿Ú²»µ«Éæ¼°Ë«±íÐÅϢдÈ룬¶øÇÒ»¹´øÊÂÎñ£¬²¢·¢Ò»¸ßÊý¾Ý¿âÁ¬½Ó¾ÍÕ¼Âú¡£
×î³õÖ»ÄÜͨ¹ýÏÞÁ÷µÄ·½Ê½ÏÈ´¦Àí£¬µ«ÕâÑù×ö¼«²»ºÏÀí£¬»î¶¯ÆÚ¼ä´ó²¿·ÖÓû§µÄ¸ÐÊÜÊǼÈÅɲ»ÁËȯÓÖÁì²»ÁËȯ¡£
ºóÀ´´ó¸ÅÔÚ16Äê7Ô¸ijɰÑÈë¿âÊý¾Ý¶ª½ø¶ÓÁÐÀÅŶÓÈë¿â£¬²»¹ýÕâÑùÓû§ÌåÑéÒ²²»ºÃ£¬±ÈÈçÓÐÈ˵ãÁËÁìȯ°´Å¥£¬È»ºóÂíÉÏȥȯ°ü²é¿´£¬ÉõÖÁÂíÉÏʹÓÃʱ·¢ÏÖûȯ£¬ÒªµÈÉÏÒ»¶Îʱ¼ä²Å¿´µ½¸Õ²ÅËùÁìȯ£¬ÔÒòÊÇÊý¾Ý»¹ÔÚ¶ÓÁÐÀ»¹Ã»Èë¿â¡£
ÔÙºóÀ´ÎÒÃǾÍÏëÄÜ·ñÏÈд»º´æ£¬¶ÁµÄʱºòÒ²ÊÇÏȶÁ»º´æ£¬ÕâÑù¾ÍÄÜÂú×ãÓû§ÐèÒª¡£¿ÉÊÇ¿´¿´ÎÒÃǵÄRedis£º
1.²»ÄÜÖ§³Ö½á¹¹»¯´æ´¢
2.²»Ö§³ÖÊÂÎñ¡£
µ±Ê±mongoDB¿ÉÒÔÖ§³Ö½á¹¹»¯´æ´¢£¬¶øÇÒÖ§³ÖSql²éѯ£¬²¢ÇÒ³Ðŵ¼´½«Ö§³ÖÊÂÎñ£¬È»¶øÎÒÃǵĴ洢Öмä¼þÒѾÓÐMysqlºÍRedis£¬³öÓÚÍŶӹæÄ£ºÍ¼¼ÊõÕ»µÄ¹ÜÀí£¬ÎÒÃDz»Ì«Ï£Íû°Ñ¼¼ÊõÕ»¸ãµÃ̫ӷÖ×£¬ÒòΪ²»Ïë½µµÍ±¾À´¾Í²»Ëã¸ßµÄÑз¢Ð§ÂÊ£¬±ÜÃâ³öÏÖ¼¼ÊõʵÏÖʱ³öÏÖÑ¡ÔñÀ§ÄÑ£¬¶øÇÒ¾ÍÄÇôһÁ½¸öд¼Ü¹¹´úÂë¡¢·â×°´î½¨µ×²ã×é¼þµÄÈË£¬Î¬»¤¶àÌ×¼¼ÊõÆñ²»ÍÂѪ¡£
µ±Ê±ÓиöͬÊÂÌáÒé°Ñ½á¹¹»¯´æ´¢×ª»¯³Ék-v£¬ÔÙÀûÓÃkeyµÄÃüÃû¹æÔòÀ´Ä£·ÂÊÂÎñ£¬ÕâÑùÍêÈ«¿ÉÒÔ×ö³ö»ùÓÚRedis×÷Ϊµ×²ã´æ´¢µÄÄÚ´æÊý¾Ý¿â¡£ÓÚÊÇÎÒÃǽøÐÐÁËһЩpojo½á¹¹×ª»»ºÍkey±êÇ©·â×°£¬²¢°ÑËùÓÐÏà¹ØµÄAPIͨ¹ýJDBCÀ´·â×°£¬×îÖÕµÄЧ¹û²»µ«Ö§³ÖPOJOµÄ½á¹¹»¯´æ´¢ÒÔ¼°SQLÓï¾ä²Ù×÷£¬¶øÇÒ»¹Ö§³ÖÊÂÎñ¡£Í¨¹ýÕâÖÖ·½Ê½°ÑÓÅ»ÝȯÐÅÏ¢ÏÈ»º´æµ½Redis-ClusterºóÔÙ¸ù¾ÝÎÒÃÇ·â×°µÄ¡±ÊÂÎñ¡°³Ö¾Ã»¯µ½MysqlÖУ¬ÕâÑù¾Í»ù±¾Âú×ãÁ˸÷·½ÐèÇó¡£
ÔÚ´úÂëÉÏ¿´£¬ÔÚService²ã°ÑPOJO³Ö¾Ã»¯µ½Êý¾Ý¿âÓ뻺´æµ½RedisÊÇÎÞ²î±ðµÄ£¬Îª´ËÎÒµÄͬʰÑÕâÌ×ʵÏÖ³ÆÎªÄÚ´æÊý¾Ý¿âÄ£¿é¡£
/**
* @author DeanPhipray
* OBSI DB´æ´¢Ê¾Àý
*
* */
@Transactional
public int saveToRedis(String fieldName,Student
student,Teacher Teacher) throws RdbException{
Row row=new Row();
try {
row.setValue(fieldName, SeqFactory.getOID());
rStudentDao.insert("dual", row);
row.setValue(fieldName, SeqFactory.getOID());
rStudentDao.insert("dual", row);
row.setValue(fieldName, SeqFactory.getOID());
rStudentDao.insert(student);
row.setValue(fieldName, SeqFactory.getOID());
rTeacherDao.insert(teacher);
}catch (Exception e) {
log.error("»º´æÊµÀýʧ°Ü");
throw new RdbException("Rdb save fail",e);
}
return 2;
}
/**
* @author DeanPhipray
* OBSI DB queryʾÀý
*
* */
public Student query(@RequestParam("id")
Long id,String tableName) throws RdbException{
Student student= null;
try {
String sql = "select * from "+ tableName
+ "where id = ?";
List params = new LinkedList<>();
params.add(id);
student= (Student) rStudentDao.query(sql,params);
} catch (Exception e) {
log.error("²éѯʵÀýʧ°Ü");
throw new RdbException("Rdb query fail",e);
}
return student;
} |
½üÆÚÍŶӿªÊ¼¸ãÃô½ÝתÐÍ£¬ÎÒÃǸúһЩÃô½Ý¹ËÎʵĽ»Á÷ÖÐÌáµ½ÎÒÃÇһֱΪ¼¼ÊõÕ»×ökeepfitµÄÀíÄ»ù±¾µÃµ½¶Ô·½µÄÈÏͬ¡£
²È¿Ó¾Àú
Ò»ºÅ¿Ó£º½©Ê¬Á¬½Ó
ÔÚÒ»¸öÔºڷç¸ßµÄÉÏÏßÒ¹£¬µ±´ó¼Ò¶¼ÒÔΪÉÏÏßÈÎÎñ¿ìÍê³Éʱ£¬Í»È»ÓÐͬʸæËßÎÒ·¢²¼Ð°üÖØÆôϵͳºó£¬ÏµÍ³ÎÞ·¨»ñÈ¡Redis-ClusterÁ´½Ó£¬ÖØÆô¹ýºÃ¼¸´Î»¹ÊÇÕâÑù£¬ÎÒÂíÉϼì²é¼¯Èº×´Ì¬£¬·¢ÏÖÒ»ÇÐÕý³££¬µ«¼ì²éÁ¬½ÓÊýʱ¾Í¾ªÆæµØ·¢ÏÖËùÓнڵãµÄÁ¬½ÓÊýµ½´ïÁËÉÏÏÞ¡£ÎÒÃÇËãÁËһϾõµÃºÜÆæ¹Ö£¬ÒòΪ½ÓÈëµÄϵͳʮ¸ùÊÖָͷÊýµÃÍ꣬¶øÇÒÿ¸öϵͳµÄÅäÖö¼Êǰ´ÎÒÃÇÖÆ¶¨µÄÄ£°åÅä²ÎÊý£¬ÎÒÃÇ×î´óÁ¬½ÓÊý²ÅÅäÁË200£¬¿ÕÏÐ×î´óÁ¬½ÓÊý50£¬¿ÕÏÐ×îСÁ¬½ÓÊýÊÇ10£¬Ò»°ã¸÷¸öÓ¦ÓÃʵÀýÖ»»áÒÔ10¸öÁ¬½ÓÁ¬µ½Redis-Cluster¸÷¸ö½ÚµãÖУ¬ÔõôËã¶¼µ½²»ÁËÁ¬½ÓÊýµÄÉÏÏÞ°¡¡£ÎªÁ˾¡¿ì»Ö¸´£¬ÎÒÃÇÏÈͨ¹ý½Å±¾ÃüÁîÔÚRedis·þÎñÆ÷ÉÏÇå³ýÁ¬½Ó£¬½âȥȼü֮¼±£¬²»¹ýÖα겻Öα¾£¬ÐÒ¿÷ÿ´ÎÇå³ýÍêÁ¬½Ó£¬¿Í»§¶Ë»á×Ô¶¯ÖØÁ¬£¬²»Ó°Ïì·þÎñ£¬¶øÁ¬½ÓÊýÔٴε½´ïÉÏÏÞ£¬´ó¸ÅÒªÁ½Ììʱ¼ä¡£
echo
"client list" | redis-cli -c -p {port}|awk
-F '=|
' '$12>3600{print $4}' | sed "s/^/client
kill /g" | redis-cli -c -p {port} |
Ìî¿Ó¹¥ÂÔ£ºÏû³ý½©Ê¬Á´½Ó
ÔÚËæºó¼¸ÌìÀÎÒÃÇ·¢ÏÖ¿Í»§¶ËÉèÁË×î´ó³¬Ê±£¬Èç¹ûÁ¬½ÓÒ»Ö±´¦ÓÚ¿ÕÏÐ״̬£¬´ó¸Å5·ÖÖӾͻá¶Ï¿ªÓë·þÎñÆ÷Ö®¼äµÄ³¤Á¬½Ó£¬µ«Ææ¹ÖµÄÊÇ·þÎñ¶Ë²»³ÐÈϿͻ§¶ËµÄ¶ÏÁ¬×´Ì¬£¬Ò»Ö±±£³Ö¸ÃÁ¬½Ó£¬½á¹û´Ó¿Í»§¶ËµÄ·þÎñÆ÷¿´²»µ½ÕâÖÖÁ¬½Ó£¬µ«ÔÚRedis·þÎñÆ÷ÉÏÈ´¿´µ½´óÁ¿ÕâÖÖÁ¬½Ó£¬×îÖÕµ¼Ö·þÎñ¶ËÁ¬½ÓÊý±»Õ¼Âú£¬ÎÞ·¨ÔÙ´´½¨ÐÂÁ¬½Ó¶ÔÍâÌṩ·þÎñ¡£ÎªÁËÈÃÁ´½ÓÓÐÒ»¶¨µÄµ¯ÐÔ£¬ÎÒÃÇÔÚ¿Í»§¶ËÉèÖÃÁ¬½Ó³¬Ê±Ê±¼ä¡¢Á¬½Ó³Ø´óС¡¢×î´ó¿ÕÏÐÁ¬½ÓÊý¡¢×îС¿ÕÏÐÁ¬½ÓÊýµÈ¡£
<!--
jedis configuration starts -->
<bean id="config" class="org.apache.commons.pool2.
impl.Generic
ObjectPoolConfig">
<property name="maxTotal" value="200"></property>
<property name="maxIdle" value="50"></property>
<property name="minIdle" value="10"></property>
<property name="maxWaitMillis"
value="15000">
</property>
<property name="lifo" value="true"></property>
<property name="blockWhenExhausted"
value="true">
</property>
<property name="testOnBorrow" value="false">
</property>
<property name="testOnReturn" value="false">
</property>
<property name="testWhileIdle"
value="true">
</property>
<property name="timeBetweenEvictionRunsMillis"
value="30000"></property>
</bean>
<bean id="jedisCluster" class="com.csair.csmbp.
util.JedisClusterFactory">
<property name="addressKeyPrefix"
value="address"
/>
<property name="timeout" value="300000"
/>
<property name="maxRedirections"
value="6"
/>
<property name="config" ref="config"
/>
</bean> |
ÔÚ·þÎñ¶Ë¸ù¾Ýʵ¼ÊÇé¿öÉèÖÃtcp-keepalivedºÍTimeoutÕâÁ½¸ö²ÎÊý£¬ÆäÖн¨ÒéTimeoutµÄÖµ¸ú¿Í»§¶ËµÄ³¬Ê±Ê±¼äÒ»Ö¡£
¶þºÅ¿Ó£º¿Í»§¶Ë¹ý¶à
Ëæ×ÅÓ¦Óó¡¾°µÄÖð½¥Ôö¶à£¬ÕâÌ×»º´æÏµÍ³ÒýÆðÁ˲¿ÃÅÄںܶàÏîÄ¿×éµÄÐËȤºÍ¹Ø×¢£¬½ÓמÍÊÇ·×·×Ó»Ô¾½ÓÈ룬һÏÂ×Óµ®ÉúÁ˺ܶà¿Í»§¶Ë£¬´øÀ´µÄÎÊÌâ¾ÍÊÇÁ¬½ÓÊýÅäÖÃÄÑÒÔͳһ¹æ¹Ü£¬Á¬½ÓÊý±©Ôö£¬½á¹ûijЩϵͳ/¸ö±ðÁ´Â··Ö²»µ½Á¬½Ó£¬ÕâÒ»À´¾ÍÒý³öÒ»¸ö±È½Ï¾µäµÄ³¡¾°£¬Ä³´óÁìµ¼ÓÃÎÒÃǵÄϵͳ×ÜÊDZ¨´í£¬¶øÎÒÃÇÄ£·Â²Ù×÷ÏëÖØÏÖ´íÎóʱ£¬»ù±¾ÊÇÕý³£(ÈÃÎÒÃǼ«¶È±ÀÀ£)¡£
Ìî¿Ó¹¥ÂÔ£º´î½¨´úÀí²ã
Õâ¸öÎÊÌâ·¢Éúʱ¼à¿ØÏµÍ³ÊDz»»á±¨¾¯µÄ£¬ÒòΪ¼à¿ØÏµÍ³Êǹ̶¨ÆµÂÊ·¢Ëͼì²âÇëÇó£¬Ò»Ö±¹Ì¶¨Õ¼ÓÃ×ÅÒ»ÌõÁ´Â·£¬¶øÇÒ´ËʱµÄ¼à¿ØÏµÍ³»¹Ã»È¥¼à¿Ø¼¯ÈºµÄÁ¬½ÓÊý¡£ºóÀ´ÎÒÃÇͨ¹ý¿çÁ´Â·µÄÈÕÖ¾·ÖÎöϵͳ¼ì²éÈÕ־ʱ·¢ÏÖ¸ö±ðÓ¦ÓÃÁ¬²»ÉÏRedis-Cluster,ÔÙ¿´¿´Redis·þÎñÆ÷ÉϵÄÁ¬½ÓÊýÊÇ´¦ÓÚ±¬Âú״̬£¬²»¹ý¾ø¶Ô´ó²¿·ÖÁ¬½ÓÊÇ¿ÕÏÐ״̬£¬Ã»Êý¾ÝÁ÷¶¯µÄ£¬Óɴ˾͵®ÉúÁËÓôúÀí°ÑÁ¬½Óͳһ¹ÜÀíµÄÏë·¨¡£
½ÓÏÂÀ´¾Í´î½¨ÁËÒ»Ì×ÇáÁ¿¼¶µÄ´úÀí²ã¼¯ÈºÍ³Ò»¹ÜÀíRedis-ClusterÁ´½Ó£¬²ÉÓÃNetty¿ò¼Ü´¦Àí¸÷¸öϵͳ/¸÷ÌõÁ´Â·µÄ¿Í»§¶ËÇëÇó¡£

ÔÚ¿Í»§¶ËºÍ´úÀíÖ®¼ä£¬´úÀíÄ£ÄâJedis¸úRedisÖ®¼äµÄͨѶÐÒ飬ÒÔnioµÄ·½Ê½´¦Àí²¢·¢ÇëÇó£¬ÔÚ´úÀíÓëRedis-ClusterÖ®¼ä²ÉÓÃsocket³¤Á¬½Ó¸´Ó÷½Ê½×öÇëÇóת·¢£¬Ô±¾µÄ¿Í»§¶ËÍêÈ«ÎÞÐè×öÈκδúÂë¸Ä¶¯¾ÍÄܽÓÈë´úÀí¼¯Èº¡£
´úÀí¼¯Èº»áÔÚRedis-ClusterÖлº´æ´úÀí¼¯ÈºµÄ½ÚµãÐÅÏ¢ºÍˢи÷¸ö½ÚµãµÄ½¡¿µ×´Ì¬£¬ÒòΪJedis¿Í»§¶Ë»á¶¨Ê±Ñ¯Îʼ¯Èº½ÚµãÐÅÏ¢£¬¶ø´úÀí¼¯ÈºÖ»Ðè°ÑMaster½ÚµãÌæ»»Îª´úÀí¼¯Èº½Úµã£¬²¢ÇÒ¶Ô´úÀí¼¯Èº½Úµã×öÒ»´Îƽ¾ùµÄHash
Slot·ÖƬ¾ÍÄÜÈ·±££º
1.¿Í»§¶ËÇëÇó¼¯ÖÐÁ¬½Óµ½´úÀí¼¯ÈºÉÏ
2.´úÀí¼¯ÈºÔÚ¶¯Ì¬À©Õ¹Ð½ڵãʱÄܱ»¿Í»§¶Ë×Ô¶¯·¢ÏÖ
ÈýºÅ¿Ó£ºÄÚ´æ×î´óÖµÏÞÖÆ
Æð³õ»º´æµÄÊý¾Ý±È½ÏÉÙ£¬Ò»Ö±Ã»Åä×î´óÄÚ´æÏÞÖÆ£¬Ëæ×ŽÓÈëϵͳԽÀ´Ô½¶à£¬»º´æÊý¾ÝÁ¿²»¶ÏÔö´ó£¬½á¹ûÔÚij¸ö·çºÍÈÕÀöµÄ°×Ì죬ÄÚ´æ±»¼·±¬£¬ÏµÍ³³ýÁ˱¨Cluster
downÍ⣬²¢Ã»¸üÇåÎúµÄ±¨´í£¬µ±Ê±ÎÒÃÇÒ»Á³ÃÔ㯣¬ÄªÃûÆäÃîµØ²éÁË1¸ö¶àСʱºó²Å·¢ÏÖ·þÎñÆ÷ÄÚ´æ±»ºÄ¹âÁË¡£
Ìî¿Ó¹¥ÂÔ£ºÉèÖÃ×î´óÄÚ´æÏÞÖÆ
ÔÚ·þÎñ¶Ë¸ù¾Ý·þÎñÆ÷×ÊÔ´µÄʵ¼ÊÇé¿öÉèÖÃmaxmemoryµÄ´óС£¬ÕâÑùÓиöºÃ´¦¾ÍÊǵ±³¬¹ýÕâ¸öֵʱ£¬Redis»áÈÃset²Ù×÷ʧ°Ü£¬¶øÇÒÓÐÃ÷È·µÄÒì³£ÐÅÏ¢·µ»Ø¡£Õâ¸ö¿Ó½â¾ö°ì·¨ËäÈ»·Ç³£¼òµ¥£¬µ«¼«Ò×±»ºöÂÔ£¬ÊôÓÚ°µ¹µ¡£
ËĺſӣºaofÎļþÕ¼Âú´ÅÅ̿ռä
ÓÐÒ»ÌìÎÒÃǸպÃÍê³ÉÁËÒ»¸ö¼¾¶ÈµÄÈÎÎñ£¬Õý×¼±¸ÏíÊÜÄÇ·ÝÄѵõݴʱÏÂ°à´øÀ´µÄСÓäÔã¬ËµÊ±³Ù£¬ÄÇʱ¿ì£¬¼à¿Ø±¨¾¯£¡¼¯ÈºÖÐij̨·þÎñÆ÷ÉϵÄËùÓÐʵÀýÍ£Ö¹·þÎñ£¬ÎÒÃÇÂíÉϳ¢ÊÔÖØÆôÉÏÃæµÄʵÀý£¬µ«ÓÚÊÂÎÞ²¹¡£ÓÚÊÇÎÒÃÇÖ»ºÃ°´²¿¾Í°à£¬ÀÏÀÏʵʵ´Ócpu¡¢ÄÚ´æ¡¢´ÅÅ̿ռ䡢RedisÈÕÖ¾µÈµÈÖð¸ö¼ì²é£¬½á¹û·¢ÏÖ´ÅÅ̿ռäÂúÁË£¬AOFÒ»Ö±×èÈû£¬Ò»¸öaofÎļþÌå»ý¾¹È»ÓÐÊ®¼¸G£¨ÆäËûÕý³£µÄʵÀýÉÏaofÎļþ²Å2-3G£©£¬ÎªÁ˾¡¿ì»Ö¸´ÎÒÃǹû¶Ï°ÑÆäÖÐÁ½¸ö´Ó½ÚµãʵÀýµÄaofÎļþɾµô£¬È»ºóÔÙÖØÆôʵÀý£¬È»ºó¾Í»Ö¸´Õý³£ÁË£¬²»¹ýµ±ÎÒÃÇ˳ÊÖÖØÆôÕą̂·þÎñÆ÷Ò»¸öûÓÐɾ³ýaofÎļþµÄʵÀýºó£¬Õâ¸öʵÀýµÄaofÎļþÔÚÖØÆôºó½Ó½ü1·ÖÖÓºó´ÓÊ®¼¸G±ä³ÉÁË2G£¬ÔÚ´ËÆÚ¼ä¸ÃʵÀý½øÈ뽩ËÀ×´Ì壨µ¥Ï̵߳ı׶ˣ©£¬ÕâÃ÷ÏÔ½øÐÐÁËaofÖØÐ´°¡¡£
Ìî¿Ó¹¥ÂÔ£º¿ØÖÆaofÎļþ´óС
´ËºóÿÌìÖ´ÐÐBGREWRITEAOFÖ¸Áî½Å±¾£¬¼à¿Ø´ÅÅ̿ռ䣬¼õÉÙ·þÎñÆ÷ÉÏRedisµÄʵÀýÊý²¢ÌÚ¿ÕÒ»°ëÄڴ棬ÒòΪһ̨»úÉϲ¿Êð¶à¸öRedisʵÀý»áÓиöÒþ»¼£¬ÍòÒ»¶à¸öʵÀýÔú¶Ñ×öAOFÖØÐ´»áµ¼ÖÂswap»òÕßoom£¬µ¼ÖÂÖØÐ´Ê§°Ü£¬ÕâÖÖʧ°Ü»á²»¶ÏÖØ¸´£¬Ö±ÖÁaofÎļþÏñ¹öÑ©ÇòËÆµÄ±ä´ó£¬×îÖÕÈûÂú´ÅÅÌ£¬ÁíÍâÖØÐ´Ìå»ý½Ï´óµÄaofÎļþʱ£¬Redis»á½øÈëIO×èÈû״̬£¬Í£Ö¹¶ÔÍâ·þÎñ¡£

½áÓïºÍ¼ÄÍû
ÔÚ½üÒ»Äê°ëµÄ̽Ë÷ºÍʵ¼ù¹ý³ÌÖУ¬ÎÒÃÇÍŶÓһ·¿Ó¿ÓÍÝÍÝ£¬¼¸¾µßÅæµØ×ßµ½ÏÖÔÚ£¬´óÌåÉÏÃþË÷³öÒ»Ìס°¸ß¿ÉÓ㬸߿ɿ¿£¬¸ß²¢·¢ÏµÍÑÓ³Ù¡±µÄ»º´æ½â¾ö·½°¸¡£
Ï£ÍûÕâÌ×ÍÑÌ¥ÓÚRedis(ºì±¦Ê¯)µÄ¡°ºÚê×ʯ¡±ÏµÍ³£¬³Ë×Å¡°ÄϺ½eÐС±Õâ¹É¶«·ç£¬Äܵõ½¸üºÃµÄ³ÖÐøµÄÓÅ»¯£¬ÔÚδÀ´µÄÈÕ×ÓÀï×ߵøüÎÈ¡¢¸üÔ¶¡£ |