前言
本文详细介绍了在CentOS7.6环境下安装redis的详细步骤。
操作系统架构为ARM架构。安装方式为RPM离线安装。
内网环境,又是ARM版本,只能满世界找安装包下载。这个过程也是相当复杂繁琐。
ARM架构x86架构的安装过程区别不大,有的软件必须使用ARM版的安装包,有的则不需要。
本文档作为自己实施过程中的参考文档。参考了网上其他优秀的文章。
安装包准备
在redis官网下载安装包。下面是下载地址:
http://download.redis.io/releases/
版本一般选择6或者7的版本都可以,区别不大,尽量不选rc版本就行(就是后缀里含有rc1什么字样的)。
Redis貌似也不需要区分是否是ARM版本的安装包。

环境准备
安装GCC
redis安装前必须安装GCC编译器。
好在GCC还是比较好找的,可以在CentOS镜像文件的Packages目录下找到rpm安装包。
安装命令为:
rpm -ivh PACKAGES.rpm #安装包的名称
如果安装失败,会提示哪些安装包是必须提前安装的。再去Packages目录下去找。
反复查找和执行,直到全部安装完成。
安装redis
使用make和make install命令安装
make #编译
make install #安装
如果make执行错误,一般是有需要的基础包没安装。
按照提示要求将安装包全部安装,执行make clean清除一下,再按照上面执行一遍make和make install。
make clean #清除错误编译
安装完成后,默认会安装在/usr/local/bin目录下,执行文件为redis-server。
启动redis
redis启动时需要一个配置文件,配置文件模板安装包里有redis.conf,这里将配置文件放在了/etc/下。
修改配置文件后,必须重启服务才能生效。
启动命令如下:
redis-server /etc/redis.conf
启动时可能会出现overcommit_memory的警告。
0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1:表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2: 表示内核允许分配超过所有物理内存和交换空间总和的内存。
# Server initialized
# WARNING overcommit_memory is set to 0!
Background save may fail under low memory condition.
To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
按照要求,执行命令即可
sysctl vm.overcommit_memory=1
设置redis
此次用的是ARM版本,出现了个错误,提示我的系统有个BUG。
#Redis will now exit to prevent data corruption. Note that it is possible to suppress this warning by setting the following config: ignore-warnings ARM64-COW-BUG
将配置文件中有关忽略此BUG的注释取消,即:
ignore-warnings ARM64-COW-BUG
重启即可。
设置端口
修改port行。默认为6379
port 6379
设置用户名密码
默认用户名为default,默认密码为空。
设置密码需要修改requirepass行,解开注释并修改为:
requirepass 123456
重启服务。
若redis没有设置密码,则默认是不允许外部访问的。若一定要访问,则需要关闭保护模式。
修改protected mode为no。
protected-mode no
重启服务。
设置IP
修改bind 行,后面跟具体的IP即可,后面可以同时跟多个地址。
::1表示tcp6,一般不加也行
bind 127.0.0.1 ::1 192.168.100.5
修改后重启服务。
设置redis为服务
新建service文件
vi /etc/systemd/system/redis.service
内容如下:
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /etc/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
其中,ExecStart行为redis的启动命令。
修改完成后要重载系统服务。
systemctl daemon-reload
接下来就可以使用systemctl运行了。
systemctl start redis
systemctl stop redis
systemctl enbale redis
设置开机启动
systemctl enbale redis
692




被折叠的 条评论
为什么被折叠?



