Redis ,全称 REmote DIctionary Server ,是一个由 Salvatore Sanfilippo 编写的开源高性能 key-value 存储系统。Redis 是基于内存的 Key-Value 数据库,比 Memcache 更先进,支持多种数据结构,高效,快速。用 Redis 可以很轻松解决高并发的数据访问问题,做为时时监控信号处理也非常不错。本文详细介绍如何在 Ubuntu 18.04 上手动安装最新版 Redis 。以下操作是在 root 账号下进行的,非 root 账号需提升到 root 权限。

安装 Redis

Ubuntu 18.04 默认源中的 Redis 版本不是最新版,要想通过 apt-get install 的方式安装最新版,首先添加 Redis 源。

添加 Redis 源

首先安装依赖:

apt-get install software-properties-common -y

使用如下命令添加 Redis 源:

add-apt-repository ppa:chris-lea/redis-server -y

安装 Redis

使用如下命令安装 Redis:

apt-get update && apt-get install redis-server -y

通过以上命令便可安装最新版 Redis ,终端中输入以下命令查询 Redis 版本:

redis-server -v

命令执行后返回 Redis 版本如下,已经是最新版本:

Redis server v=5.0.3 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=45d60903d31a0894

Redis 安装完成后服务已经自动启动,通过以下命令查看 Redis 服务状态:

systemctl status redis-server

命令执行后会返回类似下面的信息,可以看到 Redis 服务已经启动:

root@timelate:~# systemctl status redis-server
● redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-01-24 07:21:02 MSK; 1min 26s ago
     Docs: http://redis.io/documentation,
           man:redis-server(1)
  Process: 446 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
 Main PID: 456 (redis-server)
    Tasks: 4 (limit: 508)
   CGroup: /system.slice/redis-server.service
           └─456 /usr/bin/redis-server 127.0.0.1:6379

Jan 24 07:21:03 v63045.kvm.u31347.com systemd[1]: Starting Advanced key-value store...
Jan 24 07:21:02 v63045.kvm.u31347.com systemd[1]: Started Advanced key-value store.

设置服务开机自启动:

systemctl enable redis-server

命令执行后返回类似下面的信息,服务器重启后 Redis 会自动运行:

root@timelate:~# 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.

Redis 服务管理命令

使用如下命令对 Redis 服务进行管理:

systemctl status redis-server  # 查看 Redis 服务状态
systemctl start redis-server  # 启动 Redis 服务
systemctl stop redis-server  # 停止 Redis 服务
systemctl restart redis-server  # 重启 Redis 服务

配置 Redis 密码

修改配置文件,设置 Redis 密码

配置 Redis 密码将启用 auth 命令,该命令需要客户端进行身份验证才能访问数据库,大大提高安全性。配置 Redis 密码是通过修改 Redis 配置文件完成的。Redis 配置文件为 /etc/redis/redis.conf 。在 redis.conf 文件中有一条对 requirepass 的注释警告:

# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.

因此,指定一个非常强大和非常长的值作为密码很重要,可以使用 openssl 命令生成一个随机密码:

printf "$(openssl rand 60 | openssl base64 -A) \n" 

命令执行后终端返回一串随机字符串,例如:

EDyHgJqw1maAYr+bbjmIKF+1lm9EnGegFrzdy2zNfAdgvCCi1Wz+Xezs1YzVpHPpDZqyl2uNSwRIKSFn

将该随机字符串做为 Redis 密码(注意,以下命令执行时请将随机字符串修改为自己获取的真实随机字符串):

sed -i 's/# requirepass foobared/requirepass EDyHgJqw1maAYr+bbjmIKF+1lm9EnGegFrzdy2zNfAdgvCCi1Wz+Xezs1YzVpHPpDZqyl2uNSwRIKSFn/' /etc/redis/redis.conf

重启 Redis 服务,使密码生效:

systemctl restart redis.service

测试 Redis 密码

终端中输入执行以下命令进入 Redis 客户端:

redis-cli

终端中返回结果如下:

root@timelate:~# redis-cli
127.0.0.1:6379> 

输入 ping 并回车,终端中返回结果如下:

127.0.0.1:6379> ping
(error) NOAUTH Authentication required.

提示需要认证,说明密码已经生效。继续在终端中输入以下命令,进行密码认证:

auth EDyHgJqw1maAYr+bbjmIKF+1lm9EnGegFrzdy2zNfAdgvCCi1Wz+Xezs1YzVpHPpDZqyl2uNSwRIKSFn

命令执行后终端返回结果如下,提示认证成功:

127.0.0.1:6379> auth EDyHgJqw1maAYr+bbjmIKF+1lm9EnGegFrzdy2zNfAdgvCCi1Wz+Xezs1YzVpHPpDZqyl2uNSwRIKSFn
OK

终端中输入 exit 并回车,退出 Redis 客户端。

通过以上步骤便可在 Ubuntu 18.04 上手动安装最新版 Redis ,本文结束。

文章目录