一:环境
1、Redis需要c语言的编译环境,在线安装gcc
yum install gcc-c++
二:安装Redis 本文档所使用的文件资源
1、将Redis的源码包上传到Linux下
2、解压Redis源码包,并改名
tar -zxvf /usr/local/redis-3.0.0.tar.gz
mv redis-3.0.0 redis-source
3、进入redis-source目录,编译。
make
4、安装,指定安装目录
make install PREFIX=/usr/local/redis
5、将redis设置为后台启动,将redis.conf文件复制到redis/bin目录下
cp redis.conf /usr/local/redis/bin/
vim redis.conf
./redis-server redis.conf
ps aux|grep redis
7、测试redis是否安装成功
./redis-cli
三:搭建伪分布模式
1、Redis的持久化方案
Redis的所有数据都是保存到内存中的。
Rdb:快照形式,定期把内存中当前时刻的数据保存到磁盘。Redis默认支持的持久化方案。
aof形式:append only file。把所有对redis数据库操作的命令,增删改操作的命令。保存到文件中。数据库恢复时把所有的命令执行一遍即可。
vim redis.conf
两种持久化方案同时开启使用aof文件来恢复数据库。
2、Redis-cluster的架构图
2、redis-cluster投票:容错
详解:
(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.
(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.
(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可
(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点
3、Redis集群的搭建
Redis集群至少需要三个节点。要保证集群的高可用,需要每个节点有一个备份机。这样Redis集群需要6台服务器。
搭建伪分布,可以使用一台虚拟机运行6个Redis实例,更改Redis实例的端口号为7001-7006。
4、首先搭建集群环境,使用ruby脚本搭建集群。需要ruby的运行环境。
yum install ruby yum install rubygems
5、安装ruby脚本运行使用的包。
gem install redis-3.0.0.gem
mkdir redis-cluster cp -r redis/bin redis-cluster/ cd redis-cluster/ mv redis/ redis01/
cd /usr/local/redis-source/src/ cp redis-trib.rb /usr/local/redis-cluster
vim start-all.sh cd redis01 ./redis-server redis.conf cd .. cd redis02 ./redis-server redis.conf cd .. cd redis03 ./redis-server redis.conf cd .. cd redis04 ./redis-server redis.conf cd .. cd redis05 ./redis-server redis.conf cd .. cd redis06 ./redis-server redis.conf cd ..
chmod +x start-all.sh
11、启动脚本
./start-all.sh ps aux|grep redis
12、使用ruby脚本搭建集群
./redis-trib.rb create --replicas 1 192.168.25.136:7001 192.168.25.136:7002 192.168.25.136:7003 192.168.25.136:7004 192.168.25.136:7005 192.168.25.136:7006
13、创建统一关闭redis脚本
vim shutdow-all.sh redis01/redis-cli -p 7001 shutdown redis02/redis-cli -p 7002 shutdown redis03/redis-cli -p 7003 shutdown redis04/redis-cli -p 7004 shutdown redis05/redis-cli -p 7005 shutdown redis06/redis-cli -p 7006 shutdown
chmod u+x shutdow-all.sh至此,redis集群搭建完毕。