一、手动下载安装
1.官网下载安装包 redis-5.0.7.tar.gz
2.在/opt下创建redis文件夹 并上传redis-5.0.7.tar.gz
3.解压缩
4.执行make命令
- 如果在执行make命令时报错gcc未找到
- 用root用户执行命令
yum -y install gcc automake autoconf libtool make - 重新解压缩后执行make命令
- 我的解压缩之后在 /opt/redis/redis-5.0.7 文件夹下
进入 /opt/redis/redis-5.0.7/src文件夹
6.执行命令./redis-server & 启动redis
7.执行命令 ./redis-cli 启动redis客户端并连接上本机redis
8.这时间远程telnet redis服务的端口号,你会发现并不通
9.这是因为redis自身的保护措施,默认只允许本机连接
进入redis目录,我的是/opt/redis/redis-5.0.7
10.vi ./redis.conf
将 bind 127.0.0.1 注释 #bind 127.0.0.1
将protected-mode yes 改成 protected-mode no
保存,并重新启动redis服务
11.再次启动redis的时候一定要带着配置文件启动,否则上一步的修改并不起效
12.再次远程telnet 6379端口号发现是通的。注意此时的linux防火墙6379端口号首先是开放的。
配置redis 用 systemctl 进程启动
1.在/lib/systemd/system目录下创建一个脚本文件redis.service,脚本内容如下
其中/opt/redis/redis-5.0.7是我redis的安装目录
[Unit]
Description=Redis
After=network.target
[Service]
ExecStart=/opt/redis/redis-5.0.7/src/redis-server /opt/redis/redis-5.0.7/redis.conf --daemonize no
ExecStop=/opt/redis/redis-5.0.7/src/redis-cli -h 127.0.0.1 -p 6379 shutdown
[Install]
WantedBy=multi-user.target
解释:
[Unit] 表示这是基础信息
Description 是描述
After 是在那个服务后面启动,一般是网络服务启动后启动
[Service] 表示这里是服务信息
ExecStart 是启动服务的命令
ExecStop 是停止服务的指令
[Install] 表示这是是安装相关信息
WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
2.刷新配置
刚刚配置的服务需要让systemctl能识别,就必须刷新配置
执行命令:
systemctl daemon-reload
3.启动redis
systemctl start redis
4.关闭redis
systemctl stop redis
5.重启redis
systemctl restart redis
配置redis开机启动
在redis用systemctl能够启动、停止的前提下,将redis服务加入开机启动
- redis服务加入开机启动:
执行命令:
systemctl enable redis
- redis服务禁止开机启动
systemctl disable redis
redis 持久化
reids的持久化方式有两种
1.rdb方式(默认开启)
1分钟请求一万次,或5分钟请求10次 ,或15分钟请求一次修改 都会触发rdb方式持久化
持久化目录默认在 redis安装目录下的 dump.rdb文件。当redis关闭再次启动时会自动从dump.rdb文件中恢复原有内容到内存。
2.AOF方式(默认不开启)
所以它采用日志的形式来记录每个写操作,并追加到文件中。
异步记录redis的每一次写操作,将操作记录追加到文件中
redis事务
redis是部分支付事务
redis事务本质上上一组命令的集合。redis会顺序的执行队列中的命令。期间不允许其他命令插入。
redis事务,不能保证事务的原子性。且没有回滚
1.如果出现命令性错误(类似于编译器错误),则事务中的所有命令都不会被执行
2.若在事务队列中存在语法性错误(类似于java的1/0的运行时异常),则执行EXEC命令时,其他正确命令会被执行,错误命令抛出异常。这里也就说明redis不保证事务的原子性
redis主从复制
1.从机可以复制主机,所有的东西,包括在主从关系建立之前的所有东西。主从关系建立之后的第一次复制是全量复制,后面是增量复制
2.只有主机上可以write写入值,从机不可以。
1.配置哨兵模式,当主机挂了之后会重新选举主机。