Redis安装和高可用集群搭建
安装步骤
官网下载:https://redis.io/download
CentOS 7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # 安装 GCC GC++
yum -y install gcc
yum -y install gcc-c++
yum -y install tcl
# 下载,解压至/usr/local,切换目录
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar -zxvf redis-5.0.5.tar.gz -C /usr/local
cd /usr/local
cd redis-5.0.5
# 编译安装
make
make PREFIX=/usr/local/redis-cluster install
|
Ubunt 18.04
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| # 安装 GCC GC++
sudo apt update
sudo apt install make
sudo apt install tcl
sudo apt install gcc
# 下载,解压至/usr/local,切换目录
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar -zxvf redis-5.0.5.tar.gz -C /usr/local
cd /usr/local
cd redis-5.0.5
# 编译安装
make
make PREFIX=/usr/local/redis-cluster install
|
- 复制配置文件到 /usr/local/redis-cluster/bin 目录,修改的 redis.conf 配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| # ip绑定
# bind 192.168.137.200
# 是否限制ip
protected-mode no
# 是否需要密码
# requirepass xxxxxx
# 启动端口
port 6379
# 后台启动
daemonize yes
# 是否开启持久化
# save ""
stop-writes-on-bgsave-error yes
# 数据目录
dir ../6379/data/
replica-read-only yes
# 最大内存限制
# maxmemory <bytes>
# 内存淘汰策略
# 当超出最大内存时触发
# volatile-lru: 仅限设置了 expire 的部分; 优先删除最近最少使用(Least recently used ,LRU) 的 key。
# allkeys-lru -> 优先删除最近最少使用
# volatile-lfu -> 仅限设置了 expire 的部分; 优先删除最近使用频率最低(Least Frequently Used)
# allkeys-lfu -> 优先删除最近使用频率最低
# volatile-random: 仅限设置了 expire 的部分; 随机删除一部分 key。
# allkeys-random: 所有key通用; 随机删除一部分 key。
# volatile-ttl: 仅限设置了 expire 的部分; 优先删除剩余时间(time to live,TTL) 短的key
# noeviction -> 不删除策略, 超出最大内存限制直接返回错误信息。
#
# LRU LFU TTL 都是近似时间,非精确值
maxmemory-policy volatile-lru
appendonly yes
# 是否开启集群
cluster-enabled yes
cluster-config-file nodes-6379.conf
|
1
2
3
4
5
6
7
8
9
10
11
| # 切换到目录
cd /usr/local/redis-cluster/bin
# 指定配置文件启动
./redis-server ../6379/redis.conf
#验证启动是否成功
ps -ef | grep redis
# 进入redis客户端
./redis-cli -p 6379
|
退出服务
1
2
3
4
5
| kill redis-server
kill 进程号
src/redis-cli shutdown
|
集群搭建
最低 3主 或者 3主3从
按照生产3台机器部署,每台2个实例。 可以把上面redis.conf 文件复制一份,涉及端口 6379 的地方修改端口为6380。另外2台同样操作。
举例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # 192.168.137.101
cd /usr/local/redis-cluster/bin
./redis-server ../6379/redis.conf
./redis-server ../6380/redis.conf
# 192.168.137.200
cd /usr/local/redis-cluster/bin
./redis-server ../6379/redis.conf
./redis-server ../6380/redis.conf
# 192.168.137.201
cd /usr/local/redis-cluster/bin
./redis-server ../6379/redis.conf
./redis-server ../6380/redis.conf
|
这个时候需要将每个节点下的这几个文件给删掉(测试情况删掉,实际应用不要删,这是备份文件以及节点信息,按实际的情况进行处理):
1
| appendonly.aof dump.rdb nodes-8001.conf
|
集群连接
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| cd /usr/local/redis-cluster/bin
./redis-cli -c -h 192.168.137.101 -p 6379
# 查看集群信息
cluster info
# 查看节点信息
cluster nodes
# 逐个进行关闭
./redis-cli -a xxx -c -h 192.168.137.101 -p 6379 shutdown
./redis-cli -a xxx -c -h 192.168.137.101 -p 6380 shutdown
./redis-cli -a xxx -c -h 192.168.137.200 -p 6379 shutdown
./redis-cli -a xxx -c -h 192.168.137.200 -p 6380 shutdown
./redis-cli -a xxx -c -h 192.168.137.201 -p 6379 shutdown
./redis-cli -a xxx -c -h 192.168.137.201 -p 6380 shutdown
|