安装
yum install gcc-c++
gcc -v
# 默认 4.8.5
wget http://download.redis.io/releases/redis-6.0.8.tar.gz
tar -xvf redis-6.0.8.tar.gz
## 升级 gcc 版本
make distclean
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
## -------环境设置----------
#临时有效,退出 shell 或重启会恢复原 gcc 版本
scl enable devtoolset-9 bash
#长期有效
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
make
make install
## 默认安装路径 /usr/local/bin
## 或者 指定安装前缀
make install PREFIX=/usr/local/redis
cd /usr/local/redis/bin
mkdir conf
cp /root/redis-6.0.8/redis.conf ./conf
## 指定后台启动
vim conf/redis.conf
## 修改
daemonize yes
./redis-server conf/redis.conf
./redis-cli -p 6379
ping
## 公网ip 可访问
# 注释掉bind
## 启动端口
port 30128
## 密码
requirepass xxxx
## 重启
## 1.redis-cli 开操作
redis-cli -h 127.0.0.1 -p 6379 shutdown
## 2.kill 掉进程
ps -ef | grep redis
## 有密码 登录后
auth <mypassword>
设置开机自启动
方法一 通过 install_server.sh
## 方法一 通过 install_server.sh 在源码文件夹的 utils 里面
## 需要注释掉一段代码
#if [ "${_pid_1_exe##*/}" = systemd ]
#then
# echo "This systems seems to use systemd."
# echo "Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!"
# exit 1
#fi
./utils/install_server.sh
## 后面可以通过 service 来管理 redis 服务了
service redis_30065 restart
## 解决/var/run/redis_30065.pid does not exist, process is not running
# 创建下对应的文件就好了
touch /var/run/redis_30065.pid
## ps 可以看到 /etc/init.d 中创建了 redis_30065,还有 执行了 chkconfig 这个在方法二中都会使用,先提一嘴
# 检查 redis 服务是否 on
chkconfig --list
# 如果看到redisd的服务,并且3,4,5都是on的话则成功,如果是off,则键入
chkconfig --level 345 redisd on
方法二 redis_init_script
## 仍然是 utils 下的脚本
cp redis_init_script /etc/init.d/redis_30065
## 修改下信息到自定义的文件夹
chmod + x /etc/init.d/redis
systemctl start redis_30065
Centos7下Redis设置开机自启动服务 - Tse先生 - 博客园 (cnblogs.com)
备份策略
RDB
redis database
默认使用
写时复制技术(备份到临时文件,覆盖)
![image-20221009094821583](https://yixinglian.oss-cn-hangzhou.aliyuncs.com/blogimage-20221009094821583.png)
配置文件位置
![image-20221009094852436](https://yixinglian.oss-cn-hangzhou.aliyuncs.com/blogimage-20221009094852436.png)
当 redis 无法写入磁盘,直接关掉Redis写操作,推荐 yes
![image-20221009095029244](https://yixinglian.oss-cn-hangzhou.aliyuncs.com/blogimage-20221009095029244.png)
是否压缩
![image-20221009095059016](https://yixinglian.oss-cn-hangzhou.aliyuncs.com/blogimage-20221009095059016.png)
数据完整性检查
![image-20221009095237444](https://yixinglian.oss-cn-hangzhou.aliyuncs.com/blogimage-20221009095237444.png)
间隔20秒,如果有3个key发生变化则备份
恢复方式
把 dump.rdb 复制到其他位置
把待恢复的rdb 文件拷贝到配置的 rdb 文件路径
启动 服务即可
AOF
append of file
以日志的形式记录每个写操作(增量保存)
默认不开启
appendonly yes
![image-20221009102451720](https://yixinglian.oss-cn-hangzhou.aliyuncs.com/blogimage-20221009102451720.png)
注意 redis7 这里有修改,aof 改为了多个 可参看 redis7.0多AOF文件_happytree001的博客-CSDN博客_aof文件
![image-20221009103201379](https://yixinglian.oss-cn-hangzhou.aliyuncs.com/blogimage-20221009103201379.png)
超过一定大小 ,rewrite 压缩体积
总结
![image-20221009103434940](https://yixinglian.oss-cn-hangzhou.aliyuncs.com/blogimage-20221009103434940.png)
TODO
下一章会讲讲 redis 的常见数据结构,主要环境还是在 redis-cli 中操作,生产环境中 shell 方式还是用的多一点