Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hel-developer-guide
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenhao
hel-developer-guide
Commits
5cf51f1e
Commit
5cf51f1e
authored
Aug 02, 2017
by
11277
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update redis.md
parent
4c15261b
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
163 additions
and
0 deletions
+163
-0
redis.md
后端开发/redis.md
+163
-0
No files found.
后端开发/redis.md
View file @
5cf51f1e
## redis 安装与部署
## 一、安装
### 1.WINDOWS环境
Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。
打开一个 cmd 窗口 使用cd命令切换目录到 C:
\r
edis 运行 redis-server.exe redis.windows.conf (如果觉得麻烦可以将c:
\r
edis加入到path中)。
### 2.LINUX环境
> $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
> $ tar xzf redis-2.8.17.tar.gz
> $ cd redis-2.8.17
> $ make
make完后 redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下:
下面启动redis服务.
>$ cd src
$ ./redis-server redis.conf
上述安装完成后可以正常运行redis,但是redis推荐的做法是常用的文件和程序文件分离,这样做的好处是可以通过新建多个启动文件夹,以不同的参数启动多个redis服务,
手动复制配置文件 redis.conf、sentinel.conf和执行脚本:redis-cli 、redis-server 、redis-sentinel到redis1目录下:
![
redis-dir
](
/assets/redis-dir.jpg
)
新安装的redis需注意以下几点,按需求调整
1.
默认情况redis不是在后台运行,这种情况下关闭shell(命令窗口)就关闭了redis,我们需要把redis放在后台运行,设置了后台运行就得自己设置日志的输出位置
**设置redis.conf**
```
daemonize yes
loglevel notice#日志等级
logfile "/usr/redis/log/redis.log"#日志保存路径
```
2. Redis默认只让本机连,对其它服务器不开放,需要配置bind参数。
```
bind *
```
3. Redis默认开机不启动,需要将启动命令加入到/etc/rc.local中
```
/opt/redis1/src/redis-server /opt/redis/redis1/redis.conf
```
## 二、部署
#### 1.搭建多个redis服务间的主从关系
**Redis的主从(master-slave)就是为了数据冗余备份、保证数据的安全、提高性能。**
这里我们准备3个redis服务器,分别复制上面写到的redis1两份命名为redis2和redis3,修改每个redis的redis.conf文件 port和pidfile参数。
注意:pidfile也要改,Linux为每一个redis分配了一个pid进程号,如果这里不作修改,会影响后面redis服务的启动
服务名|端口|pidfile|身份
| -- | -- | --| --|
redis1|6380|/var/run/redis_6380.pid|master|
redis2|6381|/var/run/redis_6381.pid|slave|
redis3|6382|/var/run/redis_6382 .pid|slave|
我们计划搭建成表中的关系,即redis1为主,redis2和redis3为从,给redis设置主从只需要在从服务的redis.conf加入
> slaveof 主服务器ip 主服务器端口
分别以下列方式启动3个redis服务:
```
./opt/redis1/redis-server /opt/redis1/redis.conf
./opt/redis2/redis-server /opt/redis2/redis.conf
./opt/redis3/redis-server /opt/redis3/redis.conf
```
3个redis服务都已经启动:
![redis-server](/assets/redis01.png)
查看主redis服务的身份:
```
# redis-cli -h localhost -p 6380
# >info
```
![
redis
](
/assets/redis02.png
)
>- redis主从关系到此搭建完成,可是如果其中的主redis服务器宕机怎么办,岂不是整个服务都崩掉了?请看下节redis哨兵
## 2.redis哨兵
> Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。
![
redis
](
/assets/redis-sentinel.jpg
)
> **提示:**
> - redis哨兵会监控主redis以及主redis下面的从redis,如果主redis下线后满足换老大(配置文件配置)的条件,哨兵会从从服务中选取某个redis成为主服务。
#### 配置redis哨兵
1.
配置端口
在sentinel.conf 配置文件中, 我们可以找到port 属性,这里是用来设置sentinel 的端口,一般情况下,至少会需要三个哨兵对redis 进行监控,我们可以通过修改端口启动多个sentinel 服务。
2.
配置主服务器的ip和端口
我们把监听的端口修改成6380,并且加上权值为2,这里的权值,是用来计算我们需要将哪一台服务器升级升主服务器
3.
启动Sentinel
sentinel 启动之后,就会监视到现在有一个主服务器,两个从服务器
当我们把redis2从服务器关闭之后,我们可以看到日志
再启动redis2
哨兵监听主服务器老大哥的同时,也关注了小弟的动态
关闭主redis,发现并没有将提升slave成为master,原因是sentinel的权值设置为2,需要两个哨兵都认为主redis断线才切换。
关闭redis1(6380)后,哨兵告诉我们换了大哥了。
查看redis3(6382),发现它已经成为大哥了
原先没有写的权限,现在也有了 。
当老大哥redis1(6380)回来后,怎么办,谁来当老大?
与实际相符,redis1只能当小弟了。。
总结
一、Sentinel的作用:
A、Master 状态监测
B、如果Master 异常,则会进行Master-slave 转换,将其中一个Slave作为Master,将之前的Master作为Slave
C、Master-Slave切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment