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]$ 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
¼ì²â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

