Redis 安装手册
1 解压
压缩包放在/root/download目录下
# tar -zxf redis-5.0.5.tar.gz
2 编译
2.1编译
# cd redis-5.0.5
# make MALLOC=jemalloc V=1
上面make命令执行的时候,存在CenterOS7中出现了如下异常,使用另一条命令执行(# make MALLOC=libc V=1)即可:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2
如果有提示gcc command not found,请安装gcc依赖
# yum install gcc
2.2验证(生产必须)
# make test
如果不能执行,且提示要安装tcl(包已在运维目录下),请执行下面命令后重试
# sudo tar -xzvf tcl8.6.1-src.tar.gz -C /usr/local/
# cd /usr/local/tcl8.6.1/unix/
# sudo ./configure
# sudo make
# sudo make install
安装完毕后,再次回到redis的解压目录中,执行make test命令,等待执行结果,截图为验证成功示例
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wtqAKLnl-1580975214518)(C:\Users\dell\AppData\Roaming\Typora\typora-user-images\image-20191229103836280.png)]
注:构建时选择默认的内存分配器
# make MALLOC=libc // 默认的
# make MALLOC=jemalloc // Linux中使用,因为它比默认的少很多内存碎片
注:默认情况下,Redis将构建一个用户友好的彩色输出。如果希望看到更详细的输出,请使用以下命令
# make V=1
注:反编译(完全删除编译内容)
# make distclean
3 安装
# make PREFIX=/usr/local/redis install
# vi /etc/profile
在文件底部加入:
// 注:如果服务器已经安装了其他组件,那么PATH之间用英文的冒号”:”隔开:
// 例:export PATH=$PATH:$JAVA_HOME/bin:$REDIS_HOME/bin
export REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin
保存退出:wq,启用环境变量
# source /etc/profile
// 验证
# echo $PATH
4 构建
# cd utils // redis解压目录下
# ./install_server.sh // 该命令可以执行多次,会安装多个实例,但生产只装一次
设定目录:
内容 | 文件位置及文件名 |
---|---|
配置 | /etc/redis/6379.conf |
日志 | /var/redis/log/redis_6379.log |
数据 | /var/redis/data/6379 |
执行文件 | /usr/local/redis/bin/redis-server |
5 服务操作命令
# service redis_6379 stop
# service redis_6379 start
# service redis_6379 restart
# service redis_6379 status
6 开机自启
# chkconfig redis_6379 on
# chkconfig --list //查看所有注册的脚本文件
验证,重启服务器
# reboot
重新连接服务器后输入以下命令:
# service redis_6379 status
看到下面的内容表示成功,如果有其他多余的警告或错误提示,请重新安装
Redis is running (1637)
7开放端口
所有redis服务器都要确保开放了6379端口:
/etc/rc.d/init.d/iptables status
如果没有iptables,就安装一下,一般是CenterOS7中默认开的是firewall
# 停止firewall
systemctl stop firewalld.service
# 禁止firewall开机启动
systemctl disable firewalld.service
# 安装iptables
yum install iptables-services
# 开机启动
systemctl enable iptables.service
没有开放端口就配置
CenterOS6中:
# /sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
# /etc/rc.d/init.d/iptables save
# /etc/rc.d/init.d/iptables restart
CenterOS7中:
# vi /etc/sysconfig/iptables
添加以下内容:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT
重启应用配置
# systemctl restart iptables.service
7 修改配置
# vi /etc/redis/6379.conf
找到下列对应配置的位置,并进行修改:
1 关闭保护模式,本服务仅对内网服务,不需要该配置
bind 0.0.0.0
protected-mode no
2 RDB配置
save 900 1 // 15分钟有1条key变更就记录
save 300 10 // 5分钟有10条key变更就记录
save 60 60 // 1分钟有60条key变更就记录
3 设置访问密码
requirepass [访问密码] // 需要同步修改APP配置文件中的redis密码
4 开启AOF
appendonly yes
5 设置AOF为每秒记录
# appendfsync always
appendfsync everysec
# appendfsync no