From: http://mwt198668.blog.163.com/blog/static/48803692201132141755962/
Redis安装指南
作者:Red_Ant
时间:2011-04-20
简 介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步Redis一个分布式缓存
Redis官方主页:http://www.redis.io/
百 度 百 科:http://baike.baidu.com/view/4595959.htm#sub4595959
Redis中文简介:http://yuanmuqiuyu2000.blog.sohu.com/162703316.html
安装环境:
版本:Redis-2.2.4
操作系统:CentOS 5.5 X64
账户:root
一、安装准备:
1.请先确认系统安装了gcc
$ gcc –v 正常情况可以看到版本号
如果得到gcc:command not found 代表gcc没有安装,或者安装有问题
2.解决:可以参考如下进行GCC的安装(不同系统请各自参考gcc安装方法)
放入系统安装光盘,进入cd /media/CentOS_5.5_Final/CentOS/中,按顺序安装如下程序
$ rpm -ivh cpp-4.1.2-48.el5.x86_64.rpm
$ rpm -ivh kernel-headers-2.6.18-194.el5.x86_64.rpm
$ rpm -ivh glibc-headers-2.5-49.x86_64.rpm
$ rpm -ivh glibc-devel-2.5-49.x86_64.rpm
$ rpm -ivh libgomp-4.4.0-6.el5.x86_64.rpm
$ rpm -ivh gcc-4.1.2-48.el5.x86_64.rpm
二、开始安装Redis
首先解压redis-2.2.4.tar.gz到Linux的指定目录中,这里举例我们使用的目录为/usr/local/redis(自行建立该redis目录)将解压后的文件放入该目录
1.进入该目录
$ cd /usr/local/redis/redis-2.2.4
2.执行
$ make
注:此过程可能会遇到./mkreleasehdr.sh权限不够,那么请先将执行
$ cd /usr/local/redis/redis-2.2.4/usr/src
$ chmod 777 mkreleasehdr.sh
如没有错误,安装结束后能看到
3.到此我们的Redis就安装完成了
我们通过执行./src/redis-server开启redis服务,然后输入如下命令可以测试Redis是否正常工作:
$ cd src
$ ./redis-cli
redis> ping 测试服务是否开启
PONG 服务开启时可以看到PONG的回应
redis> set foo bar 将key=foo,value=bar放入redis中
OK 成功返回OK
Redis> get foo 获得key=foo的value
"bar" 成功返回”bar”
至此Redis安装一切正常o(^_^)o
Redis使用入门
一、Redis启动和关闭
为了方便管理可以在/usr/local/redis目录中添加3个文件夹
$ mkdir /usr/local/redis/bin
$ mkdir /usr/local/redis/etc
$ mkdir /usr/local/redis/var
$ cp redis-server redis-cli redis-benchmark redis-stat /usr/local/redis/bin/
$ cp redis.conf /usr/local/redis/etc/
因为改变了redis.conf文件的位置,所以启动方法如下
$ mkdir /usr/local/redis/bin
$ ./redis-server ../etc/redis.conf
启动后可通过ps –ef|preg redis来查看Rredis是否启动成功
关闭Redis通过
$ ./redis-cli 启动客户端程序
$->shutdown 关闭当前Redis
$->exit 退出客户端程序
二、配置参数
在我们成功安装Redis后,我们直接执行redis-server即可运行Redis,此时它是按照默认配置来运行的(默认配置甚至不是后台运行)。我们希望Redis按我们的要求运行,则我们需要修改配置文件,Redis的配置文件就是我们上面第二个cp操作的redis.conf文件,目前它被我们拷贝到了/usr/local/redis/etc/目录下。修改它就可以配置我们的server了。如何修改?下面是redis.conf的主要配置参数的意义:
daemonize:是否以后台daemon方式运行
pidfile:pid文件位置
port:监听的端口号
timeout:请求超时时间
loglevel:log信息级别
logfile:log文件位置
databases:开启数据库的数量
save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression:是否使用压缩
dbfilename:数据快照文件名(只是文件名,不包括目录)
dir:数据快照的保存目录(这个是目录)
appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
下面是一个略做修改后的配置文件内容:
daemonize yes
pidfile /usr/local/redis/var/redis.pid
port 6379
timeout 300
loglevel debug
logfile /usr/local/redis/var/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /usr/local/redis/var/
appendonly no
appendfsync always
glueoutputbuf yes
shareobjects no
shareobjectspoolsize 1024
将上面内容写为redis.conf并保存到/usr/local/redis/etc/目录下
然后在命令行执行:
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
即可在后台启动redis服务,这时你通过
telnet 127.0.0.1 6379
即可连接到你的redis服务
三、客户端程序
因为本人业务需要,这里只列举Java客户端,其他语言客户端请参考官方文档(http://www.redis.io/clients),现有Java客户端有4种:
其中Jedis是官方主推的Java客户端,架构思路清晰,小巧,下面是用Jedis客户端访问Redis
版本:jedis-1.5.2.jar
代码示例:
String host = "192.168.169.132";
// host提供Redis服务的主机IP,Redis提供默认端口6379
Jedis jedis = new Jedis(host);
jedis.ping();// return PONG,测试主机服务是否正常启动
jedis.set("hello", "world"); // return OK
jedis.get("hello"); // return "world"
jedis.shutdown(); // 关闭该Redis
根据现在有环境进行的测试结果(仅供参考):
单客户端,单线程向Redis服务器中添加10,0000key用时20秒左右
单客户端,10线程向Redis服务器中添加10,0000key用时6秒左右
四、同步机制
Redis到目前使用的版本为止只支持master-slave(主-从)同步,不支持master-master (主-主)同步。
1.设置同步:
在Slave机器的redis.conf配置文件中修改
# slaveof <masterip> <masterport>
例如:slaveof 192.168.169.132 6379
<masterip>主机IP
<masterport>主机端口
2.多个从机,可以让多个从机指向一个相同的主机。
3.串联同步,可以让一个从机指向一个主机,让另一个从机指向刚才的从机,从而实现串联; 从机只同步其主机的数据。
注:切忌不可以让主机和从机相互指向对方,否则将无法同步。
附 录
一、常用命令格式
启动Redis服务:
1.默认启动:读取src下的redis.conf配置文件启动redis
$ ./redis-server
2.指定配置文件启动:
$ ./redis-server ../etc/redis.conf (使用指定位置的配置文件来启动Redis)
启动Redis客户端:
1.启动默认客户端,连接到默认src下的redis.conf配置文件中地址的Redis
$ ./redis-cli
2.连接到指定地址的Redis
$ ./redis-cli –h 192.168.169.132
3. 连接到指定地址和端口的Redis
$ ./redis-cli –h 192.168.169.132 –p 6380