0、环境
Linux:centos6.5
redis:3.0.5
1、下载
方式一:官网下载war包,通过xftp拷贝到linux服务器,解压;
方式二:linux服务器,执行命令 wget http://download.redis.io/releases/redis-3.0.5.tar.gz
2、编译
2.1 解压
tar -zxvf redis-3.0.5.tar.gz
2.1 编译
cd redis-3.0.5/ make
2.3 测试是否成功
cd src ./redis-server
新打开一个终端窗口,执行命令:./redis-3.0.5/src/redis-cli
set foo bar
get foo
=============================================================
redis.conf 配置项说明:
1、daemonize no
是否把redis-server在后台启动,默认是“否”,改为yes,会生成一个pid文件
2、pidfile
/var/run/redis.pid,redis-server的pid文件。
3、port
redis-server的端口号
4、dbfilename dump.rdb
数据库文件的位置,最好添加绝对路径,若不添加时在启动用户的home目录下
5、slaveof
设置主从服务器的主服务器的地址和端口
6、loglevel verbose
日志级别,debug,verbose,notice,warning
7、logfile stdout
日志的输出文件,默认是标准输出。例如:logfile /tmp/redis.log
=============================================================
主从配置
工作原理:
在Slave启动并连接到Master之后,它将主动发送一条SYNC命令。此后Master将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave服务器在接收到数据库文件数据之后将其存盘并加载到内存中。此后,Master继续将所有已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命令,从而达到最终的数据同步。
如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。
***同一台机器的主从配置***
***不同机器的主从配置***
(1)同一台机器的主从配置
1、在同一台机器上启动两个Redis服务器,分别监听不同的端口
2、环境说明
master 6379,slave 6380
3、修改配置文件
拷贝一份redis.conf,cp redis.conf redis_slave.conf
修改redis_slave.conf,把端口修改为6380;把slaveof 修改为 slaveof 127.0.0.1 6379
4、测试
#启动master服务器,即6379端口的服务器 ./src/redis.server redis.conf #启动slave服务器,即6380端口的服务器 ./src/redis.server redis_slave.conf #启动master客户端 ./src/redis.cli -h 127.0.0.1 -p 6379 #启动slave客户端 ./src/redis.cli -h 127.0.0.1 -p 6380 #清空master当前数据库中的所有Keys 127.0.0.1:6379> FLUSHDB #master中创建key 127.0.0.1:6379> set foo aaa OK 127.0.0.1:6379> set foo2 bbb OK #查看master中存在哪些Keys 127.0.0.1:6379> keys * 1) "foo" 2) "foo2" #在slave中查看keys 127.0.0.1:6380> keys * 1) "foo2" 2) "foo" #在master中删除其中一个测试Key,并查看删除后的结果。 127.0.0.1:6379> del foo (integer) 1 127.0.0.1:6379> keys * 1) "foo2" #在slave中查看是否foo也已经在slave中被删除。 127.0.0.1:6380> keys * 1) "foo2" #查看同步状态主从关系127.0.0.1:6379> info内容比较多,只关注需要的:Replication项
(2)不同机器的主从配置
配置方式和同一台机器的配置方式基本一样,只是ip不是同一台机器而已。