安装
1、curl-O http://redis.googlecode.com/files/redis-2.6.13.tar.gz
2、tar zvxf redis-2.6.13.tar.gz
3、cd redis-2.6.13
4、make
(如果报错
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
则make MALLOC=libc)
sudo make install
配置
在src同级目录下新增db文件夹
1、cp redis.conf /db/redis_s1.conf
2、修改配置(aof配置)
daemonize yes
(可能需要的设置:config set stop-writes-on-bgsave-error no 不然可能导致读写数据失败)
再修改port,dbfilename,dir,pidfile
appendonly yes #启用AOF持久化方式
appendfilename appendonly.aof #AOF文件的名称,默认为appendonly.aof
appendfsync everysec #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,是受推荐的方式。
no-appendfsync-on-rewrite yes #在日志重写时,不进行命令追加操作,而只是将其放在缓冲区里,避免与命令的追加造成DISK IO上的冲突。
auto-aof-rewrite-percentage 100 #当前AOF文件大小是上次日志重写得到AOF文件大小的二倍时,自动启动新的日志重写过程。
auto-aof-rewrite-min-size 64mb #当前AOF文件启动新的日志重写过程的最小值,避免刚刚启动Reids时由于文件尺寸较小导致频繁的重写。
3、
启动服务:./redis-server /***/code/redis-2.6.14/db/redis_s1.conf
连接:./redis-cli -p 6379
./redis-cli -h 192.168.1.54 -p 6381
查看某个key的信息
debug object key
测试代码
<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
//$redis->connect('127.0.0.1');// port 6379 by default
//$redis->connect('127.0.0.1',6379,60);// 2.5 sec timeout.
$redis->set('test','Hello World')'
echo$redis->get('test');
压力测试
jmeter的bin下面有redis-benchmark,可以拿来并发测试获取key的性能
redis/src下面也有
redis-benchmark -h 192.168.101.12 -p 6384 -n 10000 -c 20 get default.0-3.arrelation.hasmany.player.cards.7
0.01% <= 2 milliseconds
0.02% <= 3 milliseconds
0.03% <= 5 milliseconds
0.04% <= 6 milliseconds
0.05% <= 8 milliseconds
0.06% <= 9 milliseconds
0.07% <= 11 milliseconds
0.08% <= 12 milliseconds
0.09% <= 14 milliseconds
0.10% <= 15 milliseconds
0.11% <= 17 milliseconds
0.12% <= 18 milliseconds
0.13% <= 20 milliseconds
0.14% <= 21 milliseconds
0.15% <= 23 milliseconds
0.16% <= 24 milliseconds
0.17% <= 25 milliseconds
0.18% <= 27 milliseconds
0.19% <= 28 milliseconds
98.48% <= 29 milliseconds
100.00% <= 30 milliseconds
694.88 requests per second(每秒获取了694次这个key)