一、检查并安装所需的依赖软件
1.安装gcc
yum install gcc-c++
2.安装ruby(搭建集群版用到)
yum install ruby
yum install rubygems
3.安装redis-trib.rb运行依赖的ruby包(搭建集群版用到)
gem install redis
4.下载redis
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
二、搭建单机版
1.解压redis
tar -zxvf redis-4.0.6.tar.gz
2.进入到redis文件夹
cd redis-4.0.6
3.编译
make
4.安装到/usr/local/redis文件夹
make install PREFIX=/usr/local/redis
5.进入redis安装文件夹
cd /usr/local/redis/bin
6.启动
①.前端启动:
./redis-server
②.后台启动:
Ⅰ.复制redis.conf到redis的安装目录:cp redis.conf /usr/local/redis/bin/
Ⅱ.修改redis.conf,找到daemonize no,把no修改为yes
Ⅲ.启动:./redis-server redis.conf
Ⅳ.关闭:./redis-cli shutdown
7.查看进程
ps aux|grep redis
8.设置密码
Ⅰ.编辑conf:vim redis.conf
Ⅱ.找到requirepass参数,加入设置密码123456,则是:requirepass 123456
Ⅲ.重启redis生效
三、开启远程连接
1.修改redis.conf文件
Ⅰ.找到bind 127.0.0.1,把这行前面加个#注释掉,或者改为你的内网ip
Ⅱ.找到protected-mode yes 把yes修改为no
2.防火墙加入6379端口
3.服务器开启6379端口
4.使用客户端工具RedisDesktopManager测试
四、搭建集群版
1.redis集群要求最小3主3从,需要准备6台centos7服务器,这里用6个redis实例为例子,端口分别是7001-7006,如果我的地址为:192.168.219.128,6台服务器地址即
192.168.219.128:7001
192.168.219.128:7002
192.168.219.128:7003
192.168.219.128:7004
192.168.219.128:7005
192.168.219.128:7006
2.在local目录下创建redis-cluster存放实例
cd /usr/local/
mkdir redis-cluster
3.拷贝单机版的redis文件夹到redis-cluster文件夹里
cp -r /usr/local/redis /usr/local/redis-cluster/
4.把redis文件夹重命名
mv redis redis7001
5.进入到redis7001里面,删除dump.rdb文件
cd redis7001
rm dump.rdb
6.修改redis.conf
注意:下面内容,可以直接输入“/查找的内容”,按回车进行查找
Ⅰ.编辑redis.conf:vim redis.conf
Ⅱ.修改端口号:port 7001
Ⅲ.启动后台运行:daemonize yes
Ⅳ.修改集群:cluster-enabled yes
Ⅵ.修改bind地址:bind 你的内网ip
7.拷贝5份出来
cp -r redis7001/ redis7002
cp -r redis7001/ redis7003
cp -r redis7001/ redis7004
cp -r redis7001/ redis7005
cp -r redis7001/ redis7006
8.分别修改端口号为7002、7003、7004、7005、7006
9.拷贝redis-trib.rb文件到redis-cluster文件夹,前提下要安装好ruby
cp redis-4.0.6/src/redis-trib.rb /usr/local/redis-cluster
10.在redis-cluster文件夹下创建start-all.sh文件,用来启动所有的redis
vim start-all.sh
内容:
cd redis7001
./redis-server redis.conf
cd ..
cd redis7002
./redis-server redis.conf
cd ..
cd redis7003
./redis-server redis.conf
cd ..
cd redis7004
./redis-server redis.conf
cd ..
cd redis7005
./redis-server redis.conf
cd ..
cd redis7006
./redis-server redis.conf
cd ..
11.增加执行权限
chmod +x start-all.sh
12.启动所有的redis
13.执行创建集群的命令
./redis-trib.rb create --replicas 1 120.78.86.118:7001 120.78.86.118:7002 120.78.86.118:7003 120.78.86.118:7004 120.78.86.118:7005 120.78.86.118:7006
14.连接集群
redis7001/redis-cli -p 7001 -c
注意:
redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口
集群总线端口为redis客户端连接的端口 + 10000
如redis端口为6379,则集群总线端口为16379
所以,所有服务器需要开通redis的客户端连接端口和集群总线端口
每台都要开启这两个端口
五、持久化
1.RDB方式——在指定的时间间隔能对你的数据进行快照存储
从配置文件redis.conf可以找到以下配置
# 时间策略
# 1.如果900s内有1条是写入命令,就触发产生一次快照
# 2.如果300s内有10条是写入命令,就触发产生一次快照
# 3.如果60s内有10000条是写入命令,就触发产生一次快照
save 900 1
save 300 10
save 60 10000
# 文件名称
dbfilename dump.rdb
# 文件保存路径
dir ./ #表示当前目录
# 如果持久化出错,主进程是否停止写入
# 这个配置也是非常重要的一项配置,这是当备份进程出错时,主进程就停止接受新的写入操作,是为了保护持久化的数据一致性问题。如果自己的业务有完善的监控系统,可以禁止此项配置, 否则请开启
stop-writes-on-bgsave-error yes
# 是否压缩
# 优点:减少磁盘存储空间
# 缺点:消耗CPU资源
# 建议没有必要开启,毕竟Redis本身就属于CPU密集型服务器,再开启压缩会带来更多的CPU消耗,相比硬盘成本,CPU更值钱。
rdbcompression yes
# 导入时是否检查
rdbchecksum yes
2.AOF方式——记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。
从配置文件redis.conf可以找到以下配置
# 是否开启aof
appendonly yes
# 文件名称
appendfilename "appendonly.aof"
# 同步方式
#有三种模式:
#1.always:把每个写命令都立即同步到aof,很慢,但是很安全
#2.everysec:每秒同步一次,是折中方案
#3.no:redis不处理交给OS来处理,非常快,但是也最不安全
#一般情况下都采用 everysec 配置,这样可以兼顾速度与安全,最多损失1s的数据
appendfsync everysec
# aof重写期间是否同步
no-appendfsync-on-rewrite no
# 重写触发配置
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 加载aof时如果有错如何处理
aof-load-truncated yes
# 文件重写策略
aof-rewrite-incremental-fsync yes