试用Redis安装、php环境连接、测试

Redis介绍 Redis本质上一个Key/Value数据库,与Memcached类似的 NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是string(字符串)、list(列 表)、sets(集合)或者是ordered sets(被排序的集合),所有的数据类型都具有push/pop、add/remove、执行服务端的 并集、交集、两个sets集中的差别等等操作,这些操作都是具有原子性的,Redis还支持各种不同的排序能力 Redis 2.0更是增加了很多新特性,如:提升了性能、增加了新的数据类型、更少的利用内存(AOF和VM) Redis支持绝大部分主流的开发语言,如:C、Java、C#、PHP、Perl、Python、Lua、Erlang、Ruby等等 官网:http://code.google.com/p/redis/ Redis性能 根据Redis官方的测试结果:在50个并发的情况下请求10w次,写的速度是110000次/s,读的速度是81000次/s 地址:http://code.google.com/p/redis/wiki/Benchmarks 安装过程 最新稳定版,Redis 2.0.4 stable wget http://redis.googlecode.com/files/redis-2.0.4.tar.gz tar zxf redis-2.0.4.tar.gz cd redis-2.0.4 与其它软件不同的是,不需要configure。 make 装完了。 创建一个目录 mkdir /usr/local/redis2 cp redis-server redis-benchmark redis-cli redis.conf /usr/local/redis2 启动: ./redis-server > /dev/null & 测试: 存值: ./redis-cli set hx value 取值: ./redis-cli get hx 附: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 # masterauth ############## SECURITY ########### # requirepass foobared ############### LIMITS ############## #最大客户端连接数 # maxclients 128 #最大内存使用率 # maxmemory ########## 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 安装php客户端 使用rediska做为redis的PHP客户端。 安装peal cd /usr/local/webserver/php/ curl http://pear.php.net/go-pear | /usr/local/webserver/php/bin/php pear channel-discover pear.geometria-lab.net pear install geometria-lab/Rediska-beta php使用参考:http://rediska.geometria-lab.ru/documentation/usage/ 测试代码大致如下: $options = array( ‘servers’ => array( array(‘host’ => ‘127.0.0.1’, ‘port’ => 6379) ) ); require_once ‘/usr/local/webserver/php/PEAR/Rediska.php’; $rediska = new Rediska($options); $redis = new Rediska_Key(‘key’); $redis->setValue(‘value’); $value = $redis->getValue(‘key’); echo $value; 分别测试了下,使用mc,mcdb和redis。 引用 1000次 memcache:82.2749ms memcachedb:84.4438ms include语句放在循环里面 redis:463.0890ms memcache:81.6891ms memcachedb:86.5080ms include文件放在外面 redis:237.6881ms 5000次 memcache:388.6840ms memcachedb:421.1838ms include语句放在循环外面 redis:1,075.9599ms redis本身性能优越,但由于php客户端需要包含不少文件,反而性能比mcdb差不少。如果没有list,set等存储要求,用mcdb足已! @@10-12-24@@UPDATE:增加了PHP测试代码。