工具之Ubuntu18.04如何安装Redis

导读:本篇文章讲解 工具之Ubuntu18.04如何安装Redis,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

[版权申明]非商业目的注明出处可自由转载
博文地址: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

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!