编译安装的优势是:
- 1,编译安装时可以指定扩展的module(模块),php、apache、nginx都是一样有很多第三方扩展模块,如mysql,编译安装时候,如果需要就定制存储引擎(innodb,还是MyIASM)
- 2,编译安装可以统一安装路径,linux软件约定安装目录在/opt/下面
- 3,软件仓库版本一般比较低,编译源码安装可以根据需求,安装最新的版本
一、安装启动redis
-
1.下载redis源码
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
-
2.解压缩
tar -zxf redis-4.0.10.tar.gz
-
3.切换redis源码目录
cd redis-4.0.10
-
4.编译源文件,src/目录下有编译好的redis指令,安装到指定目录,默认在/usr/local/bin
make & make install
-
5. redis配置相关
1.找到redis配置文件:
find / -name redis.conf
2.打开文件:
vim /redis-4.0.10/redis.conf
3.配置文件:(1.更改端口启动2.开启保护模式3.使用密码登录redis)
protected-mode yes #打开保护模式
port 6380 #更改默认启动端口
requirepass password #设置redis启动密码,password是自定义的密码
daemonize yes #不会夯住
-
6.查看redis进程
ps -ef |grep redis
-
7.切进文件夹
cd redis-4.0.10/
-
8.指定配置文件启动
redis-server redis.conf(需要在conf文件所在目录执行才可找到)
-
9.连接服务端,配置只有本地可以连接
修改配置文件属性:bind 127.0.0.1
连接方式1:redis-cli -p 6380
127.0.0.1:6380> auth password
OK
127.0.0.1:6380> ping
PONG
连接方式2:redis-cli -p 6380 -a 密码
-
10.使用cmd连接,外机连接
修改配置文件的bind属性:bind 10.0.0.10
cmd输入命令:redis-cli -h 10.0.0.10 -p 6380
10.0.0.10:6380>auth password
10.0.0.10:6380>ping
PONG
连接成功,可正常使用
-
11.查询redis是否有密码
10.0.0.10:6380> CONFIG get requirepass
-
12.通过命令更改
10.0.0.10:6380> CONFIG set requirepass "xxxxxx"
二、主从同步
-
1.准备阶段
redis支持多实例,一台机器可以运行多个redis
但是为了方便,又为了实验的准确性,所以我们不在同一台虚拟机开启不同的redis。
而是在不同的虚拟机开启不同的redis,由于测试时没有网,所以就将10机器的相关文件cp到了11机器上
scp -r /usr/bin/* root@10.0.0.11:/usr/bin/
scp -r /usr/local/bin/redis-server root@10.0.0.11:/usr/local/bin/
scp -r redis.conf root@10.0.0.11:/redis-4.0.10/
scp -r /usr/local/bin/redis-cli
-
2.分别新建两个配置文件
redis-6379.conf
redis-6380.conf
-
3.主库配置
vi redis-6379.conf
输入以下内容(没有持久化配置,只是为了测试):
bind 10.0.0.10
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
requirepass password // 主库密码
-
4.从库配置
vi redis-6380.conf
输入以下内容(没有持久化配置,只是为了测试):
bind 10.0.0.11
port 6380
daemonize yes
pidfile /var/run/redis_6380.pid
slaveof 10.0.0.10 6379
requirepass password // 从库密码
masterauth password // 连接主库:时的验证密码,如果主库设置了密码必须加上,否则不生效
-
5.启动主库,结合配置文件
redis-server redis-6379.conf
-
6.启动从库,结合配置文件
redis-server redis-6380.conf
-
7.连接主库
redis-cli -h 10.0.0.10 -p 6379
auth password
-
8.连接从库
redis-cli -h 10.0.0.11 -p 6380
auth password
-
9.使用客户端测试
主库执行:
set aaa 11111
keys *
从库执行:
keys * 可查看
-
10.找进程,关闭
ps -ef |grep redis-serve
kill xxx
-
11.使用python测试
执行代码:
import redis
redis = redis.Redis(host='10.0.0.10',port=6379,password='xxxx')
redis.set('bbb',111)
从库查看:
redis-server redis-6380.conf
redis-cli -h 10.0.0.11 -p 6380
auth password
keys *
实现了主从复制之后,一方面能够实现数据的读写分离,降低master的压力,另一方面也能实现数据的备份。
1.如果主机已经运行了一段时间了,并且了已经存储了一些数据了,此时从机连上来,那么从机会将主机上所有的数据进行备份,而不是从连接的那个时间点开始备份。
2.配置了主从复制之后,主机上可读可写,但是从机只能读取不能写入(可以通过修改redis.conf中 slave-read-only 的值让从机也可以执行写操作)。
3.在整个主从结构运行过程中,如果主机不幸挂掉,重启之后,他依然是主机,主从复制操作也能够继续进行。
网友评论