最后
各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了
echo never > /sys/kernel/mm/transparent_hugepage/enabled ,并且将它添加到你的/etc/rc.local中使在 重启后仍然保持生效来修复这个问题。在THP禁用之后Redis必须重启。
四、安装GCC编译工具,不然会有编译不过的问题
yum install gcc g++ gcc-c++ make -y
五、下载、解压、编译安装
su - sw
cd backup
wget http://download.redis.io/releases/redis-4.0.1.tar.gz
tar -xvf redis-4.0.1.tar.gz
cd redis-4.0.1
make
make PREFIX=/usr/users/sw/app/redis install
编译完成,redis已经安装在/usr/users/sw/app/redis/bin下面,几个文件大致作用为
redis‐benchmark:性能测试工具,测试Redis在你的系统及配置下的读写性能
redis‐check‐aof:用于修复出问题的AOF文件
redis‐check‐dump:用于修复出问题的dump.rdb文件
redis‐cli:Redis命令行交互客户端
redis‐sentinel:redis‐server别名
redis‐server:Redis服务器启动程序
六、redis的配置修改
在源码目录中,将配置文件模板redis.conf复制到redis配置文件目录中app/redis/conf/,因为一个虚拟机要启动单个
redis节点,所以配置文件要复制三份,分别用于用于规划的服务器端口号命名区别
mkdir ~/app/redis/conf
cp backup/redis-4.0.1/redis.conf ~/app/redis/conf/redis8601.conf
七、编辑redis8601.conf文件
- 设置bind地址为本机IP,&&为本机IP,需要改为其他节点机器可访问的ip,否则创建集群时无法访问对应的端口,无法创建集群
bind 192.168.26.*
- 修改daemonize为yes,即以后台程序方式运行
daemonize yes
- 修改服务端口
port 8601
- 修改pid生成路径
pidfile “/usr/uses/sw/app/redis/run/redis8601.pid”
需要手动创建run目录存放pid路径
mkdir /usr/users/sw/app/redis/run/
5. 修改日志文件的位置
logfile “/applog/redis8601/redis.log”
需要手动创建日志目录
mkdir /applog/redis8601/
6. 修改工作目录,数据文件,append only文件等会在该目录生成
dir “/applog/redisdump”
需要手动创建该目录
mkdir /applog/redisdump
7. 数据文件名
dbfilename “dump8601.rdb”
8. 是否每次更新操作进行日志记录
appendonly yes
文件名设置
appendfilename “appendonly8601.aof”
9. 是否支持集群
cluster-enabled yes
- 集群配置文件名
cluster-config-file “nodes-8601.conf”
八、复制redis8601.conf文件为另外两个节点修改
1. cp redis8601.conf redis8602.conf
cp redis8601.conf redis8603.conf
2.统一替换配置文件redis8602.conf和redis8603.conf的8601为8602和8603
sed -i ‘s/8601/8602/g’ redis8602.conf
sed -i ‘s/8601/8603/g’ redis8603.conf
3.要手动创建8602和8603的日志目录
mkdir /applog/redis8602
mkdir /applog/redis8603
九、启动redis各节点服务
1、cd ~/app/redis/bin
./redis-server ~/app/redis/conf/redis8601.conf
./redis-server ~/app/redis/conf/redis8602.conf
./redis-server ~/app/redis/conf/redis8603 .conf
十、脚本启动
mkdir ~/bin
vim redis.sh
#!/bin/bash
case $1 in
start)
cd /usr/users/sw/app/redis/bin
./redis-server /usr/users/sw/app/redis/conf/redis8601.conf
./redis-server /usr/users/sw/app/redis/conf/redis8602.conf
./redis-server /usr/users/sw/app/redis/conf/redis8603.conf
if [ “$?” -eq 0 ];then
ps -ef|grep redis|grep -v grep
echo “redis is started”
else
echo “redis is error”
exit 10
fi
;;
stop)
for pid in ( p s − e f ∣ g r e p r e d i s ∣ g r e p − v " g r e p " ∣ e g r e p − v " (ps -ef|grep redis|grep -v "grep"|egrep -v " (ps−ef∣grepredis∣grep−v"grep"∣egrep−v"{0}"|awk -F " " ‘{print $2}’|uniq);do
kill -9 $pid >> /dev/null 2>&1
done
#echo “redis is stopped”
;;
restart)
${0} stop
Ending
Tip:由于文章篇幅有限制,下面还有20个关于MySQL的问题,我都复盘整理成一份pdf文档了,后面的内容我就把剩下的问题的目录展示给大家看一下
如果觉得有帮助不妨【转发+点赞+关注】支持我,后续会为大家带来更多的技术类文章以及学习类文章!(阿里对MySQL底层实现以及索引实现问的很多)
吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。