我想在Linux虚拟机上安装redis,有两个需要注意的地方:
1、安装时需要进行编译操作,确保你的虚拟机里面安装了gcc编译器,安装的命令是yum install gcc,查看gcc环境是否安装好的命令是rpm -qa | grep gcc。
2、默认的安装的gcc的版本是4.8.5,如果你的redis版本是6.xxx版本的,那么它编译的时候就会报错,错误信息如下所示,解决的办法有两个:第一个方法就是换个低版本的redis(5.0.8就可以),第二个方法就是升级gcc的版本,升级gcc的命令如下所示:
#1、安装scl,它可以在不覆盖原有软件包的情况下与其共存,缺点就是仅支持64位
yum -y install centos-release-scl
#2、安装gcc,其中的9表示大版本号,默认安装大版本下的最新稳定版本
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
#3、使用以下命令临时启动gcc,这种方式适用于临时切换系统的gcc版本,即开即用,仅在当前bash中有效,重启虚拟机就又变成4.8.5了
scl enable devtoolset-9 bash
#4、使用以下命令永久启动gcc,这种方式适用于长期使用该版本进行编译,切换bash依然有效
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
#查看gcc环境
gcc -v
官网的地址为:https://download.redis.io/releases/,下载适合自己的版本,并将安装包复制到Linux的usr/local目录下下。
tar -zxvf redis-6.0.4.tar.gz
进入到解压后的文件夹内,执行编译操作
cd redis-6.0.4
make
#将redis安装到/usr/local/redis 目录下
make PREFIX=/usr/local/redis install
将安装包里面的redis.conf的文件复制到redis的安装目录下,这是redis启动时需要的配置文件
cp /usr/local/redis-6.0.4/redis.conf /usr/local/redis/
执行redis里的bin目录下的redis-server命令
redis-server
设置redis服务程序在后台运行,修改redis文件夹里面的redis.conf文件
vim /usr/local/redis/redis.conf
#修改为yes,后台启动
daemonize yes
进入redis目录,然后加载配置文件redis.conf运行
cd /usr/local/redis
./bin/redis-server ./redis.conf
修改redis下的redis.conf文件,注释取消掉设置账号密码
requirepass 123456
指定redis.conf文件重新启动
./bin/redis-server ./redis.conf
进入到redis的bin目录下,输入以下命令:
./redis-cli -h 127.0.0.1 -p 6379 -a "123456"
我们使用shutdown命令来停止redis,进入到redis的目录下
./bin/redis-cli shutdown
#修改配置文件
sudo vi /usr/local/redis/redis.conf
#更换绑定
#将bind 127.0.0.1 更换为本机IP,例如:192.168.179.129
bind 192.168.11.11
#关闭保护模式
protected-mode no
编辑完重启一下redis服务
遇到的问题:
当我进行连接的时候,发现Redis desktop manager崩溃了,原因是因为redis处于protected mode,导致无法连接,
修改一下配置就可以了,protected mode功能是redis3.2以后添加的,默认为开启状态。
redis-cli -p 6379 config get protected-mode
redis-cli -p 6379 config set protected-mode no
注意:需要将6379端口号开放出去
#增加redis端口:6379
sudo firewall-cmd --add-port=6379/tcp --permanent
#重新加载防火墙设置
sudo firewall-cmd --reload
将Redis配置成为系统服务,以支持开机启动
#创建服务文件
sudo vi /usr/lib/systemd/system/redis.service
#文件内容
[Unit]
Description=Redis Server
After=network.target
[Service]
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf --daemonize no
ExecStop=/usr/local/redis/bin/redis-cli -p 6379 shutdown
Restart=always
[Install]
WantedBy=multi-user.target
#设置Redis服务开机启动
sudo systemctl enable redis
#启动Redis服务
sudo systemctl start redis
#输入下面的命令即可查看redis是否在后台运行
ps -A | grep redis