PythonÃæÊÔ¹ÙÎÊRedisµÄÏà¹ØÎÊÌ⣬¿´ÍêÕâÆªÎÄÕ¾͹»ÁËÊý¾Ý¿â
×î½üдÁËһƪ×Ô¼º´î½¨redis¼¯Èº²¢ÔÚ×Ô¼ºÏîÄ¿ÖÐʹÓõÄÎÄÕ£¬½ñÌìÔçÉÏ¿´±ðÈËдµÄÃæ¾·¢ÏÖredisÔÚÃæÊÔÖл¹ÊDZȽϳ£Îʵģ¨ÎÒÊÇpython·½Ïò£©¡£ËùÒÔ²éÔĹٷ½ÎĵµÒÔ¼°ËûÈËÔìºÃµÄÂÖ×Ó£¬×ܽáÁËһЩredisÃæÊÔºÍѧϰÖÐÄã±ØÐëÕÆÎÕµÄÎÊÌâ¡£ÊÂÎÞ¾Þϸ£¬²»¿ÉÄÜÄÒÀ¨µ½ËùÓÐÄÚÈÝ£¬¾¡Á¿°Ñ±È½Ï³£¼ûµÄд³öÀ´
ʲôÊÇRedis£¿
°²×°Redis RedisµÄ´úÂë×ñÑANSI-C±àд£¬¿ÉÒÔÔÚËùÓÐPOSIXϵͳ£¨ÈçLinux, *BSD, Mac OS X, SolarisµÈ£©Éϰ²×°ÔËÐС£¶øÇÒRedis²¢²»ÒÀÀµÈκηDZê×¼¿â£¬Ò²Ã»ÓбàÒë²ÎÊý±ØÐèÌí¼Ó¡£redisµÄ°²×°³öÆæµÄ¼òµ¥£¬Õâ¿ÉÄÜÒ²ÊÇËû·çÃÒµÄÒ»¸öÔÒò£¬ÈÃÈ˺ÜÈÝÒ×ÉÏÊÖ.Redis ÊÇÒ»¸öʹÓà C ÓïÑÔд³ÉµÄ£¬¿ªÔ´µÄ key-value Êý¾Ý¿â¡£¡£ºÍMemcachedÀàËÆ£¬ËüÖ§³Ö´æ´¢µÄvalueÀàÐÍÏà¶Ô¸ü¶à£¬°üÀ¨string(×Ö·û´®)¡¢list(Á´±í)¡¢set(¼¯ºÏ)¡¢zset(sorted set --ÓÐÐò¼¯ºÏ)ºÍhash£¨¹þÏ£ÀàÐÍ£©¡£ÕâЩÊý¾ÝÀàÐͶ¼Ö§³Öpush/pop¡¢add/remove¼°È¡½»¼¯²¢¼¯ºÍ²î¼¯¼°¸ü·á¸»µÄ²Ù×÷£¬¶øÇÒÕâЩ²Ù×÷¶¼ÊÇÔ×ÓÐԵġ£ÔÚ´Ë»ù´¡ÉÏ£¬redisÖ§³Ö¸÷ÖÖ²»Í¬·½Ê½µÄÅÅÐò¡£ÓëmemcachedÒ»Ñù£¬ÎªÁ˱£Ö¤Ð§ÂÊ£¬Êý¾Ý¶¼ÊÇ»º´æÔÚÄÚ´æÖС£Çø±ðµÄÊÇredis»áÖÜÆÚÐԵİѸüеÄÊý¾ÝдÈë´ÅÅÌ»òÕß°ÑÐ޸IJÙ×÷дÈë×·¼ÓµÄ¼Ç¼Îļþ£¬²¢ÇÒÔÚ´Ë»ù´¡ÉÏʵÏÖÁËmaster-slave(Ö÷´Ó)ͬ²½¡£Ä¿Ç°£¬VmwareÔÚ×ÊÖú×ÅredisÏîÄ¿µÄ¿ª·¢ºÍά»¤¡£
RedisÓëMemcachedµÄÇø±ðÓë±È½Ï
1 ¡¢Redis²»½ö½öÖ§³Ö¼òµ¥µÄk/vÀàÐ͵ÄÊý¾Ý£¬Í¬Ê±»¹Ìṩlist£¬set£¬zset£¬hashµÈÊý¾Ý½á¹¹µÄ´æ´¢¡£memcacheÖ§³Ö¼òµ¥µÄÊý¾ÝÀàÐÍ£¬String¡£
2 ¡¢RedisÖ§³ÖÊý¾ÝµÄ±¸·Ý£¬¼´master-slaveģʽµÄÊý¾Ý±¸·Ý¡£
3 ¡¢RedisÖ§³ÖÊý¾ÝµÄ³Ö¾Ã»¯£¬¿ÉÒÔ½«ÄÚ´æÖеÄÊý¾Ý±£³ÖÔÚ´ÅÅÌÖУ¬ÖØÆôµÄʱºò¿ÉÒÔÔٴμÓÔØ½øÐÐʹÓÃ,¶øMemecache°ÑÊý¾ÝÈ«²¿´æÔÚÄÚ´æÖ®ÖÐ
4¡¢ redisµÄËٶȱÈmemcached¿ìºÜ¶à
5¡¢MemcachedÊǶàỊ̈߳¬·Ç×èÈûIO¸´ÓõÄÍøÂçÄ£ÐÍ£»RedisʹÓõ¥Ï̵߳ÄIO¸´ÓÃÄ£ÐÍ¡£
Èç¹ûÏëÒª¸üÏêϸÁ˽âµÄ»°£¬¿ÉÒԲ鿴Ľ¿ÎÍøÉϵÄÕâÆªÊּǣ¨·Ç³£ÍƼö£© £º¡¶½Å̤Á½Ö»´¬µÄÀ§»ó - MemcachedÓëRedis¡·£º…
RedisÓëMemcachedµÄÑ¡Ôñ
ÖÕ¼«²ßÂÔ£º ʹÓÃRedisµÄStringÀàÐÍ×öµÄÊ£¬¶¼¿ÉÒÔÓÃMemcachedÌæ»»£¬ÒÔ´Ë»»È¡¸üºÃµÄÐÔÄÜÌáÉý£» ³ý´ËÒÔÍ⣬ÓÅÏÈ¿¼ÂÇRedis£»
ʹÓÃredisÓÐÄÄЩºÃ´¦£¿
(1) Ëٶȿ죬ÒòΪÊý¾Ý´æÔÚÄÚ´æÖУ¬ÀàËÆÓÚHashMap£¬HashMapµÄÓÅÊÆ¾ÍÊDzéÕҺͲÙ×÷µÄʱ¼ä¸´ÔӶȶ¼ÊÇO(1)
(2)Ö§³Ö·á¸»Êý¾ÝÀàÐÍ£¬Ö§³Östring£¬list£¬set£¬sorted set£¬hash
(3) Ö§³ÖÊÂÎñ£¬²Ù×÷¶¼ÊÇÔ×ÓÐÔ£¬ËùνµÄÔ×ÓÐÔ¾ÍÊǶÔÊý¾ÝµÄ¸ü¸ÄҪôȫ²¿Ö´ÐУ¬ÒªÃ´È«²¿²»Ö´ÐÐ
(4) ·á¸»µÄÌØÐÔ£º¿ÉÓÃÓÚ»º´æ£¬ÏûÏ¢£¬°´keyÉèÖùýÆÚʱ¼ä£¬¹ýÆÚºó½«»á×Ô¶¯É¾³ý
Redis³£¼ûÊý¾Ý½á¹¹Ê¹Óó¡¾°
1. String
³£ÓÃÃüÁî: set,get,decr,incr,mget µÈ¡£
StringÊý¾Ý½á¹¹ÊǼòµ¥µÄkey-valueÀàÐÍ£¬valueÆäʵ²»½ö¿ÉÒÔÊÇString£¬Ò²¿ÉÒÔÊÇÊý×Ö¡£³£¹ækey-value»º´æÓ¦Ó㻳£¹æ¼ÆÊý£ºÎ¢²©Êý£¬·ÛË¿ÊýµÈ¡£
2.Hash
³£ÓÃÃüÁ hget,hset,hgetall µÈ¡£
HashÊÇÒ»¸östringÀàÐ͵ÄfieldºÍvalueµÄÓ³Éä±í£¬hashÌØ±ðÊʺÏÓÃÓÚ´æ´¢¶ÔÏó¡£ ±ÈÈçÎÒÃÇ¿ÉÒÔHashÊý¾Ý½á¹¹À´´æ´¢Óû§ÐÅÏ¢£¬ÉÌÆ·ÐÅÏ¢µÈµÈ¡£
¾Ù¸öÀý×Ó£º ×î½ü×öµÄÒ»¸öµçÉÌÍøÕ¾ÏîÄ¿µÄÊ×Ò³¾ÍʹÓÃÁËredisµÄhashÊý¾Ý½á¹¹½øÐлº´æ£¬ÒòΪһ¸öÍøÕ¾µÄÊ×Ò³·ÃÎÊÁ¿ÊÇ×î´óµÄ£¬ËùÒÔͨ³£ÍøÕ¾µÄÊ×Ò³¿ÉÒÔͨ¹ýredis»º´æÀ´Ìá¸ßÐÔÄܺͲ¢·¢Á¿¡£ÎÒÓÃjedis¿Í»§¶ËÀ´Á¬½ÓºÍ²Ù×÷ÎҴµÄredis¼¯Èº»òÕßµ¥»úredis£¬ÀûÓÃjedis¿ÉÒÔºÜÈÝÒ׵ĶÔredis½øÐÐÏà¹Ø²Ù×÷£¬×ܵÄÀ´Ëµ´Ó´îÒ»¸ö¼òµ¥µÄ¼¯Èºµ½ÊµÏÖredis×÷Ϊ»º´æµÄÕû¸ö²½Öè²»ÄÑ¡£¸ÐÐËȤµÄ¿ÉÒÔ¿´ÎÒ×òÌìдµÄÕâÆªÎÄÕ£º
¡¶Ò»ÎÄÇáËɸ㶮redis¼¯ÈºÔÀí¼°´î½¨ÓëʹÓá·£º juejin.im/post/5ad54d…
3.List
³£ÓÃÃüÁî: lpush,rpush,lpop,rpop,lrangeµÈ
list¾ÍÊÇÁ´±í£¬Redis listµÄÓ¦Óó¡¾°·Ç³£¶à£¬Ò²ÊÇRedis×îÖØÒªµÄÊý¾Ý½á¹¹Ö®Ò»£¬±ÈÈç΢²©µÄ¹Ø×¢ÁÐ±í£¬·ÛË¿ÁÐ±í£¬×îÐÂÏûÏ¢ÅÅÐеȹ¦Äܶ¼¿ÉÒÔÓÃRedisµÄlist½á¹¹À´ÊµÏÖ¡£
Redis listµÄʵÏÖΪһ¸öË«ÏòÁ´±í£¬¼´¿ÉÒÔÖ§³Ö·´Ïò²éÕҺͱéÀú£¬¸ü·½±ã²Ù×÷£¬²»¹ý´øÀ´Á˲¿·Ö¶îÍâµÄÄڴ濪Ïú¡£
4.Set
³£ÓÃÃüÁsadd,spop,smembers,sunion µÈ
set¶ÔÍâÌṩµÄ¹¦ÄÜÓëlistÀàËÆÊÇÒ»¸öÁбíµÄ¹¦ÄÜ£¬ÌØÊâÖ®´¦ÔÚÓÚsetÊÇ¿ÉÒÔ×Ô¶¯ÅÅÖØµÄ¡£µ±ÄãÐèÒª´æ´¢Ò»¸öÁбíÊý¾Ý£¬ÓÖ²»Ï£Íû³öÏÖÖØ¸´Êý¾Ýʱ£¬setÊÇÒ»¸öºÜºÃµÄÑ¡Ôñ£¬²¢ÇÒsetÌṩÁËÅжÏij¸ö³ÉÔ±ÊÇ·ñÔÚÒ»¸öset¼¯ºÏÄÚµÄÖØÒª½Ó¿Ú£¬Õâ¸öÒ²ÊÇlistËù²»ÄÜÌṩµÄ¡£
ÔÚ΢²©Ó¦ÓÃÖУ¬¿ÉÒÔ½«Ò»¸öÓû§ËùÓеĹØ×¢ÈË´æÔÚÒ»¸ö¼¯ºÏÖУ¬½«ÆäËùÓзÛË¿´æÔÚÒ»¸ö¼¯ºÏ¡£Redis¿ÉÒԷdz£·½±ãµÄʵÏÖÈ繲ͬ¹Ø×¢¡¢¹²Í¬Ï²ºÃ¡¢¶þ¶ÈºÃÓѵȹ¦ÄÜ¡£
5.Sorted Set
³£ÓÃÃüÁ zadd,zrange,zrem,zcardµÈ
ºÍsetÏà±È£¬sorted setÔö¼ÓÁËÒ»¸öÈ¨ÖØ²ÎÊýscore£¬Ê¹µÃ¼¯ºÏÖеÄÔªËØÄܹ»°´score½øÐÐÓÐÐòÅÅÁС£
¾ÙÀý£º ÔÚÖ±²¥ÏµÍ³ÖУ¬ÊµÊ±ÅÅÐÐÐÅÏ¢°üº¬Ö±²¥¼äÔÚÏßÓû§ÁÐ±í£¬¸÷ÖÖÀñÎïÅÅÐаñ£¬µ¯Ä»ÏûÏ¢£¨¿ÉÒÔÀí½âΪ°´ÏûϢά¶ÈµÄÏûÏ¢ÅÅÐаñ£©µÈÐÅÏ¢£¬ÊʺÏʹÓÃRedisÖеÄSortedSet½á¹¹½øÐд洢¡£
MySQLÀïÓÐ2000wÊý¾Ý£¬RedisÖÐÖ»´æ20wµÄÊý¾Ý£¬ÈçºÎ±£Ö¤RedisÖеÄÊý¾Ý¶¼ÊÇÈȵãÊý¾Ý£¨redisÓÐÄÄЩÊý¾ÝÌÔ̲ßÂÔ£¿£¿£¿£©
Ïà¹ØÖªÊ¶£ºredis ÄÚ´æÊý¾Ý¼¯´óСÉÏÉýµ½Ò»¶¨´óСµÄʱºò£¬¾Í»áÊ©ÐÐÊý¾ÝÌÔ̲ßÂÔ£¨»ØÊÕ²ßÂÔ£©¡£redis Ìṩ 6ÖÖÊý¾ÝÌÔ̲ßÂÔ£º
volatile-lru£º´ÓÒÑÉèÖùýÆÚʱ¼äµÄÊý¾Ý¼¯£¨server.db[i].expires£©ÖÐÌôÑ¡×î½ü×îÉÙʹÓõÄÊý¾ÝÌÔÌ
volatile-ttl£º´ÓÒÑÉèÖùýÆÚʱ¼äµÄÊý¾Ý¼¯£¨server.db[i].expires£©ÖÐÌôÑ¡½«Òª¹ýÆÚµÄÊý¾ÝÌÔÌ
volatile-random£º´ÓÒÑÉèÖùýÆÚʱ¼äµÄÊý¾Ý¼¯£¨server.db[i].expires£©ÖÐÈÎÒâÑ¡ÔñÊý¾ÝÌÔÌ
allkeys-lru£º´ÓÊý¾Ý¼¯£¨server.db[i].dict£©ÖÐÌôÑ¡×î½ü×îÉÙʹÓõÄÊý¾ÝÌÔÌ
allkeys-random£º´ÓÊý¾Ý¼¯£¨server.db[i].dict£©ÖÐÈÎÒâÑ¡ÔñÊý¾ÝÌÔÌ
no-enviction£¨ÇýÖ𣩣º½ûÖ¹ÇýÖðÊý¾Ý
RedisµÄ²¢·¢¾ºÕùÎÊÌâÈçºÎ½â¾ö?


- 2016Äê3ÔÂÍøÃñÉÏÍøÊ±¼ä·Ö²¼£ºÍíÉÏ9µã
- Å̵ã×îÔçµÄÊý×ÖÓòÃû ÔÀ´ËüÃÇÕâôÓÐ
- £¨.ÎÒ°®Ä㣩ÓòÃû2015Äê¶È³ÂËߣºÉÌÎñ
- 2016Äê1ÔÂÊÕ¼¯²»Á¼ÓëÀ¬»øÐÅÏ¢£ºÒù»à
- 1ÔÂ28ÈÕÈ«ÇòÓòÃûÉ̽âÎöÐÂÔöÁ¿21Ç¿£º
- ÆØ°¢Àï°Í°ÍµÍµ÷ÊÕ¹º2¸ö¡°°¢À￵
- °¢ÀïÔÆÆìÏÂ.xinÓòÃû15ºÅ¿ª·Å×¢²á »ò
- ¿ç¾³µçÉÌÈÈ ÊÇÌÌÊÖɽÓóÕÕ¾ÉÏãâÄâÄ£¿
- 12Ô³õ.wangÓòÃû×ÜÁ¿15Ç¿£ºÒ×ÃûÎ÷Êý
