·¢²©ÎÄ
Havvy Tech Field

havytech.blog.chinaunix.net

NEVER SAY DIE   
¸öÈË×ÊÁÏ
  • ²©¿Í·ÃÎÊ£º23294
  • ²©ÎÄÊýÁ¿£º40
  • ²©¿Í»ý·Ö£º1807
  • ²©¿ÍµÈ¼¶£ºÉÏξ
  • ¹Ø×¢ÈËÆø£º 1
  • ×¢²áʱ¼ä£º2009-08-03 15:42:33
¶©ÔÄÎҵIJ©¿Í
  • ¶©ÔÄ
  • ¶©Ôĵ½Ïʹû
  • ¶©Ôĵ½×¥Ïº
  • ¶©Ôĵ½Google
×ÖÌå´óС£º´ó ÖРС²©ÎÄ
redis°²×° (2010-09-27 14:40)
·ÖÀࣺ ¿ªÔ´ÏîÄ¿


Redis½éÉÜ
        Redis±¾ÖÊÉÏÒ»¸öKey/ValueÊý¾Ý¿â£¬ÓëMemcachedÀàËÆµÄNoSQLÐÍÊý¾Ý¿â£¬µ«ÊÇËûµÄÊý¾Ý¿ÉÒԳ־û¯µÄ±£´æÔÚ´ÅÅÌÉÏ£¬½â¾öÁË·þÎñÖØ ÆôºóÊý¾Ý²»¶ªÊ§µÄÎÊÌ⣬ËûµÄÖµ¿ÉÒÔÊÇstring£¨×Ö·û´®£©¡¢list£¨ÁÐ±í£©¡¢sets£¨¼¯ºÏ£©»òÕßÊÇordered  sets£¨±»ÅÅÐòµÄ¼¯ºÏ£©£¬Ëù ÓеÄÊý¾ÝÀàÐͶ¼¾ßÓÐpush/pop¡¢add/remove¡¢Ö´ÐзþÎñ¶ËµÄ²¢¼¯¡¢½»¼¯¡¢Á½¸ösets¼¯ÖеIJî±ðµÈµÈ²Ù×÷£¬ÕâЩ²Ù×÷¶¼ÊǾßÓÐÔ­×ÓÐÔ µÄ£¬Redis»¹Ö§³Ö¸÷ÖÖ²»Í¬µÄÅÅÐòÄÜÁ¦
        Redis 2.0¸üÊÇÔö¼ÓÁ˺ܶàÐÂÌØÐÔ£¬È磺ÌáÉýÁËÐÔÄÜ¡¢Ôö¼ÓÁËеÄÊý¾ÝÀàÐÍ¡¢¸üÉÙµÄÀûÓÃÄڴ棨AOFºÍVM£©
        RedisÖ§³Ö¾ø´ó²¿·ÖÖ÷Á÷µÄ¿ª·¢ÓïÑÔ£¬È磺C¡¢Java¡¢C££¡¢PHP¡¢Perl¡¢Python¡¢Lua¡¢Erlang¡¢RubyµÈµÈ

RedisÐÔÄÜ£º
        ¸ù¾ÝRedis¹Ù·½µÄ²âÊÔ½á¹û£ºÔÚ50¸ö²¢·¢µÄÇé¿öÏÂÇëÇó10w´Î£¬Ð´µÄËÙ¶ÈÊÇ110000´Î/s£¬¶ÁµÄËÙ¶ÈÊÇ81000´Î/s
        ²âÊÔ»·¾³£º
        1.        50¸ö²¢·¢£¬ÇëÇó100000´Î
        2.        ¶ÁºÍд´óСΪ256bytesµÄ×Ö·û´®
        3.        Linux2.6 Xeon X3320 2.5GHzµÄ·þÎñÆ÷ÉÏ
        4.        Í¨¹ý±¾»úµÄloopback interface½Ó¿ÚÉÏÖ´ÐÐ
µØÖ·£ºhttp://code.google.com/p/redis/wiki/Benchmarks


RedisµÄ¹¦ÄÜ£º
       1¡¢RedisµÄSharding£ºRedisÖ§³Ö¿Í»§¶ËµÄSharding¹¦ÄÜ£¬Í¨¹ýÒ»ÖÂÐÔhashË㷨ʵÏÖ£¬µ±Ç°Redis²»Ö§³Ö¹ÊÕÏÈßÓ࣬ÔÚ¼¯ÈºÖв»ÄÜÔÚÏßÔö¼Ó»òɾ³ýRedis
       2¡¢RedisµÄmaster/slave¸´ÖÆ£º
                    1.        Ò»¸ömasterÖ§³Ö¶à¸öslave
                    2.        Slave¿ÉÒÔ½ÓÊÜÆäËûslaveµÄÁ¬½ÓÀ´Ìæ´úËûÁ¬½Ómaster
                    3.        ¸´ÖÆÔÚmasterÊÇ·Ç×èÈûµÄ£¬¶øÔÚslaveÊÇ×èÈûµÄ
                    4.        ¸´ÖƱ»ÀûÓÃÀ´Ìṩ¿ÉÀ©Õ¹ÐÔ£¬ÔÚslave¶ËÖ»Ìṩ²éѯ¹¦Äܼ°Êý¾ÝµÄÈßÓà
       3¡¢RedisµÄVirtual Memory¹¦ÄÜ£ºvmÊÇRedis2.0ÐÂÔöµÄÒ»¸ö·Ç³£Îȶ¨ºÍ¿É¿¿µÄ¹¦ÄÜ£¬
vmµÄÒýÈëÊÇΪÁËÌá¸ßRedisµÄÐÔÄÜ£¬Ò²¾ÍÊǰѺÜÉÙʹÓõÄvalue±£´æµ½disk£¬¶økey±£´æÔÚÄÚ´æÖС£Êµ¼ÊÉϾÍÊÇÈç¹ûÄãÓÐ10wµÄkeysÔÚÄÚ´æ ÖУ¬¶øÖ»Óнö½ö10%×óÓÒµÄkey¾­³£Ê¹Óã¬ÄÇôRedis¿ÉÒÔͨ¹ý¿ªÆôVM³¢ÊÔ½«²»¾­³£Ê¹ÓõÄValueת»»µ½diskÉϱ£´æ
       4¡¢RedisµÄ¸½¼Óµµ°¸£¨AOF£©¹¦ÄÜ£ºRedisͨ¹ýÅäÖõIJßÂÔ½«Êý¾Ý¼¯±£´æµ½aofÖУ¬µ±Redis¹ÒµôºóÄܹ»Í¨¹ýaof»Ö¸´µ½¹ÒµôǰµÄ״̬


RedisµÄ°²×°¼°ÅäÖãº
        ÏÂÔØRedis£ºwget http://redis.googlecode.com/files/redis-2.0.0-rc4.tar.gz

[falcon@www.fwphp.cn  ~/src]$ tar xvzf redis-2.0.0-rc4.tar.gz
[falcon@www.fwphp.cn  ~/src]$ cd  redis-2.0.0-rc4
[falcon@www.fwphp.cn  ~/src/redis-2.0.0-rc4]$ make
[falcon@www.fwphp.cn  ~/src/redis-2.0.0-rc4]$ mkdir ~/redis-2.0.0
[falcon@www.fwphp.cn  ~/src/redis-2.0.0-rc4]$cp redis-server  ~/redis-2.0.0
[falcon@www.fwphp.cn  ~/src/redis-2.0.0-rc4]$cp redis-benchmark  ~/redis-2.0.0
[falcon@www.fwphp.cn  ~/src/redis-2.0.0-rc4]$cp redis-cli  ~/redis-2.0.0
[falcon@www.fwphp.cn  ~/src/redis-2.0.0-rc4]$cp redis.conf  ~/redis-2.0.0
[falcon@www.fwphp.cn  ~/src/redis-2.0.0-rc4]$ cd ~/redis-2.0.0/



ÅäÖÃredis.confÅäÖÃÎļþ£º
#ÊÇ·ñ×÷ÎªÊØ»¤½ø³ÌÔËÐÐ
daemonize yes
#ÅäÖÃpidµÄ´æ·Å·¾¶¼°ÎļþÃû£¬Ä¬ÈÏΪµ±Ç°Â·¾¶ÏÂ
pidfile redis.pid
#RedisĬÈϼàÌý¶Ë¿Ú
port 6379
#¿Í»§¶ËÏÐÖöàÉÙÃëºó£¬¶Ï¿ªÁ¬½Ó
timeout 300
#ÈÕÖ¾ÏÔʾ¼¶±ð
loglevel verbose
#Ö¸¶¨ÈÕÖ¾Êä³öµÄÎļþÃû£¬Ò²¿ÉÖ¸¶¨µ½±ê×¼Êä³ö¶Ë¿Ú
logfile stdout
#ÉèÖÃÊý¾Ý¿âµÄÊýÁ¿£¬Ä¬ÈÏÁ¬½ÓµÄÊý¾Ý¿âÊÇ0£¬¿ÉÒÔͨ¹ýselect NÀ´Á¬½Ó²»Í¬µÄÊý¾Ý¿â
databases 16
#±£´æÊý¾Ýµ½diskµÄ²ßÂÔ
#µ±ÓÐÒ»ÌõKeysÊý¾Ý±»¸Ä±äÊÇ£¬900Ãëˢе½diskÒ»´Î
save 900 1
#µ±ÓÐ10ÌõKeysÊý¾Ý±»¸Ä±äʱ£¬300Ãëˢе½diskÒ»´Î
save 300 10
#µ±ÓÐ1wÌõkeysÊý¾Ý±»¸Ä±äʱ£¬60Ãëˢе½diskÒ»´Î
save 60 10000
#µ±dump  .rdbÊý¾Ý¿âµÄʱºòÊÇ·ñѹËõÊý¾Ý¶ÔÏó
rdbcompression yes
#dumpÊý¾Ý¿âµÄÊý¾Ý±£´æµÄÎļþÃû
dbfilename dump.rdb
#RedisµÄ¹¤×÷Ŀ¼
dir /home/falcon/redis-2.0.0/
###########  Replication #####################
#RedisµÄ¸´ÖÆÅäÖÃ
# slaveof <masterip> <masterport>
# masterauth <master-password>

############## SECURITY ###########
# requirepass foobared

############### LIMITS ##############
#×î´ó¿Í»§¶ËÁ¬½ÓÊý
# maxclients 128
#×î´óÄÚ´æÊ¹ÓÃÂÊ
# maxmemory <bytes>

########## APPEND ONLY MODE #########
#ÊÇ·ñ¿ªÆôÈÕÖ¾¹¦ÄÜ
appendonly no
# Ë¢ÐÂÈÕÖ¾µ½diskµÄ¹æÔò
# appendfsync always
appendfsync everysec
# appendfsync no
################ VIRTUAL MEMORY ###########
#ÊÇ·ñ¿ªÆôVM¹¦ÄÜ
vm-enabled no
# vm-enabled yes
vm-swap-file logs/redis.swap
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
############# ADVANCED CONFIG ###############
glueoutputbuf yes
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
#ÊÇ·ñÖØÖÃHash±í
activerehashing yes




Æô¶¯Redis
[falcon@www.fwphp.cn  ~/redis-2.0.0]$ ./redis-server redis.conf
¼ì²âRedisÊÇ·ñÆô¶¯£º
[falcon@www.fwphp.cn  ~/redis-2.0.0]$ netstat -an -t
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:10022               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      
¡­¡­..
[falcon@www.fwphp.cn  ~/redis-2.0.0]$ ps -ef|grep redis-server
falcon    7663     1  0 02:29 ?        00:00:00 ./redis-server redis.conf

Ç×£¬Äú»¹Ã»ÓеǼ,Çë[µÇ¼]»ò[×¢²á]ºóÔÙ½øÐÐÆÀÂÛ