[版权申明]非商业目的注明出处可自由转载
博文地址:https://blog.csdn.net/ShuSheng0007/article/details/112143403
出自:shusheng007
概述
Redis是一款开源的基于内存的数据结构化存储工具,被广泛应用为数据库,缓存以及消息代理,详情见官网。
安装
下面记录如何在Linux发行版Ubuntu18.04上安装配置Redis的方法。
更新仓库
sudo apt update
运行安装命令
sudo apt install redis-server
若期间有询问的话,选择Y
继续
配置
使用vim打开redis配置文件
sudo vim /etc/redis/redis.conf
找到
supervised no
修改为:
supervised systemd
上面的步骤是为了可以对redis使用systemctl
命令
解决报错(可选,如果没有报错就万事大吉了)
- 安装过程有可能报如下错误
Job for redis-server.service failed because a timeout was exceeded.
See "systemctl status redis-server.service" and "journalctl -xe" for details.
invoke-rc.d: initscript redis-server, action "start" failed.
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; disabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: timeout) since Sun 2021-01-03 17:04:06 CST; 9ms ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 1438 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
Jan 03 17:04:06 iZ28k2ghmchZ systemd[1]: redis-server.service: Failed with result 'timeout'.
Jan 03 17:04:06 iZ28k2ghmchZ systemd[1]: Failed to start Advanced key-value store.
Jan 03 17:04:06 iZ28k2ghmchZ systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
Jan 03 17:04:06 iZ28k2ghmchZ systemd[1]: redis-server.service: Scheduled restart job, restart counter is at 1.
Jan 03 17:04:06 iZ28k2ghmchZ systemd[1]: Stopped Advanced key-value store.
Jan 03 17:04:06 iZ28k2ghmchZ systemd[1]: Starting Advanced key-value store...
Jan 03 17:04:06 iZ28k2ghmchZ systemd[1]: redis-server.service: Can't open PID file /var/run/redis/redis-server.pid (yet?) after start: No such file or directory
解决方法:
打开redis.service文件
sudo vim /etc/systemd/system/redis.service
在
ExecStop=/bin/kill -s TERM $MAINPID
下面添加一行
ExecStartPost=/bin/sh -c "echo $MAINPID > /var/run/redis/redis.pid"
载入并重启redis
sudo systemctl daemon-reload
sudo systemctl restart redis
注意:
如果使用systemctl
命令时报如下错的话
Unit redis.service could not be found.
就需要使用如下命令创建一个symlink
sudo systemctl enable redis-server
输出如下结果说明成功了:
Synchronizing state of redis-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable redis-server
Created symlink /etc/systemd/system/redis.service → /lib/systemd/system/redis-server.service.
重新执行载入并重启的命令
sudo systemctl daemon-reload
sudo systemctl restart redis
- 重启后使用如下命令查看redis状态
sudo systemctl status redis
如果报类似如下错误
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: failed (Result: protocol) since Sun 2021-01-03 18:07:00 CST; 1min 3s ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 2171 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=1/FAILURE)
Process: 2170 ExecStartPost=/bin/sh -c echo $MAINPID > /var/run/redis/redis.pid (code=exited, status=0/SUCCESS)
Process: 2167 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
Main PID: 1983 (code=exited, status=0/SUCCESS)
redis-server.service: Control process exited, code=exited status=1
redis-server.service: Failed with result 'protocol'.
Failed to start Advanced key-value store.
redis-server.service: Service hold-off time over, scheduling restart.
redis-server.service: Scheduled restart job, restart counter is at 5.
Stopped Advanced key-value store.
redis-server.service: Start request repeated too quickly.
redis-server.service: Failed with result 'protocol'.
Failed to start Advanced key-value store.
可能是你的机器不支持IPV6
解决方法:
打开redis配置文件,
sudo vim /etc/redis/redis.conf
找到
bind: bind 127.0.0.1 ::1
修改为
bind 127.0.0.1
后,重启redis
sudo systemctl restart redis
连接
本地测试
使用如下命令连接redis服务器
sudo redis-cli
ping服务器
127.0.0.1:6379> ping
PONG
服务器回应你PONG
就说明安装成功了,恭喜你。因为你乒的一下把球打给了Redis,它乓的一下回给了你…
远程连接
Redis 默认是不允许远程连接的,要想实现远程连接,必须对其进行配置
打开redis配置文件:
sudo vim /etc/redis/redis.conf
找到
bind 127.0.0.1
在其后面添加上你服务器的公务IP
bind 127.0.0.1 你服务器的公网IP
然后重启Redis即可
到此你就可以使用如下命令远程连接了
sudo redis-cli -h 你的IP或者域名 -p 你的端口号(默认6379)
安全
但是,我们当然不希望所有人都可以访问我们的Redis,解决此问题有两种方式:
- 给redis设置密码
还是在上面的配置文件中找到
requirepass xxxx
打开注释,配置上你自己的密码即可。值得注意的是,由于redis非常快,所以黑客尝试破解你密码的速度也会非常快,所以还是设置一个比较复杂的密码为妙。
- 使用防火墙
连接
sudo redis-cli -h 你的IP或者域名 -p 你的端口号(默认6379)-a 你的密码
总结
人生不如意事常八九,氧化钙!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/14702.html