单机安装#
通过 yum 安装#
在 CentOS 7 上通过 yum 安装 Redis,可以按照以下步骤进行操作:
更新系统软件包:
安装 Redis:
可以看到默认安装的 redis 版本是 3.2.12-2.el7
如果需要安装 redis 7,这需要下载 yum 源:
1
2
| sudo yum install epel-release
sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
|
然后,在指定源进行安装:
1
| yum --enablerepo=remi install redis
|
启动 Redis 服务:
1
| sudo systemctl start redis
|
配置 Redis 开机自启动:
1
| sudo systemctl enable redis
|
修改配置文件 /etc/redis.conf
修改 bind 和 requirepass
1
2
3
| bind 0.0.0.0
requirepass 123456
|
然后重启 redis:
1
| sudo systemctl restart redis
|
开启防火墙(可选)
1
2
3
4
5
6
| # 添加 redis 端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --zone=public --add-port=6379/udp --permanent
# 重启防火墙
firewall-cmd --reload
|
运行 redis-cli
1
2
3
4
| redis-cli
127.0.0.1:6379> auth 123456
OK
|
通过 snap 安装#
安装 redis
1
| sudo snap install redis
|
查看 snap 安装的包:
启动 Redis:
运行 redis-cli
Redis的snap安装没有预配置的文件(redis.conf
)。因此,我们需要使用Redis的CLI进入控制台并进行配置。
1
2
3
4
| redis.cli
# 打印所有的配置
127.0.0.1:6379> CONFIG GET *
|
配置外网访问
要配置Redis以允许外部网络访问,使用以下命令:
1
2
3
| 127.0.0.1:6379> CONFIG GET bind
127.0.0.1:6379> config set bind 0.0.0.0
|
这将绑定Redis服务器到0.0.0.0 IP地址,使其对外可访问。请注意,这可能会带来一些安全风险,因此请谨慎操作。
设置保护模式
1
| 127.0.0.1:6379> CONFIG SET protected-mode no
|
该模式控制外部网是否可以连接 redis 服务,默认是 yes, 所以默认我们外网是无法访问的,如需外网连接 rendis 服务则需要将此属性改为 no。
设置访问密码
1
| 127.0.0.1:6379> config set requirepass mypass
|
这将设置一个名为"mypass"的密码作为访问Redis的要求。请确保将"mypass"替换为您选择的强密码。
升级
1
| sudo snap refresh redis
|
卸载
在 MacOS 安装#
安装 Redis:
启动 Redis 服务器:
1
| brew services start redis
|
这将启动 Redis 服务器并使其在后台运行。
查看 Redis 状态
1
| brew services info redis
|
验证 Redis 安装:
您可以使用以下命令来验证 Redis 是否成功安装并正在运行:
如果 Redis 正常运行,它将返回 “PONG”。
停止 Redis 服务器:
1
| brew services stop redis
|
通过源码安装#
安装编译软件
1
| yum -y install gcc gcc-c++ kernel-devel
|
创建安装目录
1
| mkdir -p /usr/local/redis
|
下载源代码并解压
1
2
| wget https://download.redis.io/redis-stable.tar.gz
tar -xzvf redis-stable.tar.gz
|
进入都目,编译安装
1
2
| cd redis-stable
make prefix=/usr/local/redis/ install
|
make install默认安装到/usr/local/bin目录下,如果需要指定安装路径,需要添加PREFIX参数
拷贝配置文件
1
2
| mkdir /usr/local/redis/conf
cp redis.conf /usr/local/redis/conf/
|
修改 redis.conf 加入以下配置:
1
2
3
4
5
6
7
8
| # 允许哪些 IP 地址可以访问
bind 0.0.0.0
# 以守护进程的方式运行
daemonize yes
# 设置密码授权
requirepass <设置密码>
|
启动Redis:
1
| redis-server /usr/local/redis/conf/redis.conf
|
查看进程:
停止redis服务:
通过 docker 安装#
在Docker中运行Redis容器,并设置密码保护和持久化存储的配置
1
2
3
4
5
6
7
8
9
10
11
12
| REDIS_PASSWORD=123456
docker run \
-d \
--restart always \
--privileged=true \
--name redis \
-v /etc/localtime:/etc/localtime \
-p 6379:6379 \
redis:7 \
--requirepass $REDIS_PASSWORD \
--appendonly yes
|
参数说明:
REDIS_PASSWORD=123456
:设置Redis的密码为123456。可以根据需要更改密码。docker run
:运行Docker容器命令。-d
:以后台模式运行容器。--restart always
:设置容器在启动时自动重启。--privileged=true
:授予容器特权,以便在容器内部执行特权操作。--name redis
:指定容器的名称为redis。-v /etc/localtime:/etc/localtime
:将主机的时区设置映射到容器内部,以确保时间同步。-p 6379:6379
:将主机的6379端口映射到容器的6379端口,以便可以通过主机IP和端口访问Redis。redis:7
:指定要运行的Redis镜像版本为7。--requirepass $REDIS_PASSWORD
:设置Redis的密码为之前定义的REDIS_PASSWORD变量的值。--appendonly yes
:开启Redis的AOF(Append-Only File)持久化模式,将写操作追加到文件中,以保证数据持久化。
通过 docker-compose 安装#
使用Docker Compose配置Redis单机容器,https://github.com/chensoul/learn-docker/blob/main/docker-compose/redis/docker-compose.redis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| version: '3.0'
services:
# Redis standalone
redis:
image: bitnami/redis:7.2
restart: always
environment:
# ALLOW_EMPTY_PASSWORD is recommended only for development.
ALLOW_EMPTY_PASSWORD: "yes"
ports:
- '6379:6379'
volumes:
- redis-data:/bitnami/redis/data
healthcheck:
test: [ "CMD", "redis-cli","--raw", "incr","ping" ]
interval: 5s
timeout: 2s
retries: 10
volumes:
redis-data:
|
restart: always
:设置容器在停止后自动重启。environment
:定义容器的环境变量。ALLOW_EMPTY_PASSWORD: "yes"
:允许使用空密码(仅在开发环境中建议使用)。
ports
:指定容器端口与主机端口的映射关系。'6379:6379'
:将主机的6379端口映射到容器的6379端口,以便可以通过主机IP和端口访问Redis。
volumes
:定义容器的数据卷。redis-data:/bitnami/redis/data
:将Redis容器的数据存储在名为redis-data的卷中。
healthcheck
:定义容器的健康检查。test: [ "CMD", "redis-cli","--raw", "incr","ping" ]
:使用Redis的健康检查命令来测试容器的健康状态。interval: 5s
:每5秒运行一次健康检查。timeout: 2s
:每次健康检查的超时时间为2秒。retries: 10
:最多重试10次健康检查。
集群模式安装#
通过 yum 安装#
TODO
通过 docker-compose 安装#
https://github.com/chensoul/learn-docker/blob/main/docker-compose/redis/docker-compose.redis-cluster.yml
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
| version: '3.0'
services:
# Redis cluster
redis-node-0:
image: bitnami/redis-cluster:7.2
volumes:
- redis-cluster-data-0:/bitnami/redis/data
environment:
- REDIS_PASSWORD=redis
- REDISCLI_AUTH=redis
- REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
redis-node-1:
image: bitnami/redis-cluster:7.2
volumes:
- redis-cluster-data-1:/bitnami/redis/data
depends_on:
- redis-node-0
environment:
- REDIS_PASSWORD=redis
- REDISCLI_AUTH=redis
- REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
redis-node-2:
image: bitnami/redis-cluster:7.2
volumes:
- redis-cluster-data-2:/bitnami/redis/data
depends_on:
- redis-node-1
environment:
- REDIS_PASSWORD=redis
- REDISCLI_AUTH=redis
- REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
redis-node-3:
image: bitnami/redis-cluster:7.2
volumes:
- redis-cluster-data-3:/bitnami/redis/data
depends_on:
- redis-node-2
environment:
- REDIS_PASSWORD=redis
- REDISCLI_AUTH=redis
- REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
redis-node-4:
image: bitnami/redis-cluster:7.2
volumes:
- redis-cluster-data-4:/bitnami/redis/data
depends_on:
- redis-node-3
environment:
- REDIS_PASSWORD=redis
- REDISCLI_AUTH=redis
- REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
redis-node-5:
image: bitnami/redis-cluster:7.2
volumes:
- redis-cluster-data-5:/bitnami/redis/data
depends_on:
- redis-node-0
- redis-node-1
- redis-node-2
- redis-node-3
- redis-node-4
environment:
- REDIS_PASSWORD=redis
- REDISCLI_AUTH=redis
- REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
- REDIS_CLUSTER_REPLICAS=1
- REDIS_CLUSTER_CREATOR=yes
volumes:
redis-cluster-data-0:
redis-cluster-data-1:
redis-cluster-data-2:
redis-cluster-data-3:
redis-cluster-data-4:
redis-cluster-data-5:
|
哨兵模式安装#
通过 yum 安装#
TODO
通过 docker-compose 安装#
https://github.com/chensoul/learn-docker/blob/main/docker-compose/redis/docker-compose.redis-sentinel.yml
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
| version: '3.0'
services:
# Redis sentinel
redis-master:
image: bitnami/redis:7.2
volumes:
- redis-sentinel-data-master:/bitnami/redis/data
environment:
- REDIS_REPLICATION_MODE=master
- REDIS_PASSWORD=123456
redis-slave:
image: bitnami/redis:7.2
volumes:
- redis-sentinel-data-slave:/bitnami/redis/data
environment:
- REDIS_REPLICATION_MODE=slave
- REDIS_MASTER_HOST=redis-master
- REDIS_MASTER_PASSWORD=123456
- REDIS_PASSWORD=123456
depends_on:
- redis-master
redis-sentinel:
image: bitnami/redis:7.2
volumes:
- redis-sentinel-data-sentinel:/bitnami/redis/data
environment:
- REDIS_MASTER_HOST=redis-master
- REDIS_MASTER_SET=mymaster
- REDIS_SENTINEL_PASSWORD=123456
- REDIS_MASTER_PASSWORD=123456
depends_on:
- redis-master
- redis-slave
volumes:
redis-sentinel-data-master:
redis-sentinel-data-slave:
redis-sentinel-data-sentinel:
|