活学活用,下午和GPT老师学习了使用systemctl,晚上就来搞个redis。
安装libsystemd-dev库,没有装这个库的话会编译失败。
下面是离线安装的办法
sudo apt install --download-only libsystemd-dev
cd /var/cache/apt/archives
# 把deb文件拷到要装的电脑
sudo dpkg -i *.deb
进入下载的tar包的路径
cd redis-7.0.11
make USE_SYSTEMD=yes PREFIX=/usr/local/redis install
两个参数比较好认,用systemd部署的时候一定要加上第一个,不然会报错:
systemd supervision requested or auto-detected, but Redis is compiled without libsystemd support!
第二个是指定路径,你不指定可以不加。
网上说用./install_server.sh
但是我装的时候报错:
This systems seems to use systemd.
Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!
只能自己动手了,先改一下文件的权限,建几个会用到的文件夹。
sudo chown -R username /usr/local/redis/
mkdir data
mkdir conf
mkdir logs
把redis-7.0.11里面的配置文件考到conf路径下。
我修改了这几个地方:
# redis.conf
bind 0.0.0.0
daemonize yes
supervised systemd
logfile "/usr/local/redis/logs/redis.log"
把redis-7.0.11/utils/systemd-redis_server.service
文件拷到/etc/systemd/system/
路径下。
我修改了这几个地方:
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
User=youruser
WorkingDirectory=/usr/local/redis/data/
然后就是GTP教我的三行指令
sudo systemctl daemon-reload
sudo systemctl enable systemd-redis_server.service
sudo systemctl start systemd-redis_server.service
没有输出就是成功,可以用下面的指令测试一下:
redis-cli
redis 127.0.0.1:6379> ping
PONG
测试用windows设备连接虚拟机上的redis时显示该问题:
DENIED Redis is running in protected mode because protected mode is enabled and no password is set for the default user.
很明显,你需要先关掉保护模式,redis作为一个内存级的数据库,一般不会需要别的服务器来调用,这样就失去他的意义了,没问题。
将配置文件里面的
protected-mode yes
改成
protected-mode no