由于项目需要,所以打算重新在Ubuntu18上安装Redis数据库,营造测试环境。

运行环境 Runtime environment

1
2
操作系统 : Ubuntu18.04LTS
Software: Redis Ubuntu版

背景

项目的后台服务器,使用的还是Ubuntu16.04就连腾讯云也在提示更新了。但是并不知道Ubuntu18装上Redis会有哪些不同,于是在此做出尝试。

Redis在Linux Ubuntu中安装

安装办法一般分为两种用:

  1. 从官网Redis下载离线包安装
  2. 直接通过Ubuntu终端输入命令来安装

由于以前尝试过使用离线包安装了,本次打算通过命令行在终端中实现安装,并以此为例。

安装前先更新一下apt
sudo apt-get update

安装Redis服务器端命令
sudo apt-get install redis-server

安装不出以外的话,一般都会有如下信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
libjemalloc1 redis-tools
建议安装:
ruby-redis
下列【新】软件包将被安装:
libjemalloc1 redis-server redis-tools
升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 14 个软件包未被升级。
需要下载 634 kB 的归档。
解压缩后会消耗 3,007 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu bionic/universe amd64 libjemalloc1 amd64 3.6.0-11 [82.4 kB]
获取:2 http://cn.archive.ubuntu.com/ubuntu bionic/universe amd64 redis-tools amd64 5:4.0.9-1 [516 kB]
获取:3 http://cn.archive.ubuntu.com/ubuntu bionic/universe amd64 redis-server amd64 5:4.0.9-1 [35.4 kB]
已下载 634 kB,耗时 4秒 (170 kB/s)
正在选中未选择的软件包 libjemalloc1。
(正在读取数据库 ... 系统当前共安装有 172042 个文件和目录。)
正准备解包 .../libjemalloc1_3.6.0-11_amd64.deb ...
正在解包 libjemalloc1 (3.6.0-11) ...
正在选中未选择的软件包 redis-tools。
正准备解包 .../redis-tools_5%3a4.0.9-1_amd64.deb ...
正在解包 redis-tools (5:4.0.9-1) ...
正在选中未选择的软件包 redis-server。
正准备解包 .../redis-server_5%3a4.0.9-1_amd64.deb ...
正在解包 redis-server (5:4.0.9-1) ...
正在处理用于 ureadahead (0.100.0-20) 的触发器 ...
正在设置 libjemalloc1 (3.6.0-11) ...
正在处理用于 libc-bin (2.27-3ubuntu1) 的触发器 ...
正在处理用于 systemd (237-3ubuntu10.3) 的触发器 ...
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
正在设置 redis-tools (5:4.0.9-1) ...
正在设置 redis-server (5:4.0.9-1) ...
Created symlink /etc/systemd/system/redis.service → /lib/systemd/system/redis-server.service.
Created symlink /etc/systemd/system/multi-user.target.wants/redis-server.service → /lib/systemd/system/redis-server.service.
正在处理用于 ureadahead (0.100.0-20) 的触发器 ...
正在处理用于 systemd (237-3ubuntu10.3) 的触发器 ...

安装完成后,Redis服务器会自动启动,在此检查Redis服务器程序是否正常,有四种方法:

检查Redis服务器系统进程
ps -aux|grep redis

1
2
3
root       4639  0.0  0.2  72796  4140 pts/0    T    21:09   0:00 sudo apt-get install redis-server
redis 5715 0.1 0.1 58548 2256 ? Ssl 21:11 0:00 /usr/bin/redis-server 127.0.0.1:6379
xx 5876 0.0 0.0 21536 1044 pts/0 S+ 21:15 0:00 grep --color=auto redis

通过启动命令检查Redis服务器状态
sudo /etc/init.d/redis-server status

1
2
3
4
5
6
7
8
9
10
11
12
13
14
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-11-01 21:11:47 CST; 6min ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Main PID: 5715 (redis-server)
Tasks: 4 (limit: 2293)
CGroup: /system.slice/redis-server.service
└─5715 /usr/bin/redis-server 127.0.0.1:6379

11月 01 21:11:47 RQ systemd[1]: Starting Advanced key-value store...
11月 01 21:11:47 RQ systemd[1]: redis-server.service: Can't open PID file …tory
11月 01 21:11:47 RQ systemd[1]: Started Advanced key-value store.
Hint: Some lines were ellipsized, use -l to show in full.

通过端口监听检查Redis服务器状态
netstat -nlt|grep 6379

1
2
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN     
tcp6 0 0 ::1:6379 :::* LISTEN

通过简单的启动命令检查
redis-server

1
2
3
4
5
6
7
6009:C 01 Nov 21:22:59.236 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
6009:C 01 Nov 21:22:59.236 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=6009, just started
6009:C 01 Nov 21:22:59.236 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
6009:M 01 Nov 21:22:59.237 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
6009:M 01 Nov 21:22:59.237 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
6009:M 01 Nov 21:22:59.237 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
6009:M 01 Nov 21:22:59.237 # Creating Server TCP listening socket *:6379: bind: Address already in use

查得到的东西,就说明它跑得正开心。但是这里说的,是redis的服务端。

通过命令行客户端访问Redis

一般来说,安装Redis服务器,它会把服务端和客户端都安装了。

在本机输入redis-cli命令就可以启动,客户端程序访问Redis服务器

redis-cli

成功以后,如下显示(ctr+c即可退出):

1
127.0.0.1:6379>

Redis的配置

  1. 使用Redis的访问账号
    默认情况下,访问Redis服务器是不需要密码的,出于增加安全性需要设置Redis服务器的访问密码。

密码:redis233666888

用vim(如果没有,建议安装,很简单)打开Redis服务器的配置文件redis.conf

sudo vim /etc/redis/redis.conf

敲下“/”然后输入requirepass,这是vim的搜索功能
1.png

取消注释requirepass,并且修改

requirepass redis233666888

2.png

  1. 设置服务端可以远程访问
    Redis服务器不允许远程访问,只允许本机访问,所以需要设置打开远程访问的功能

用vim(如果没有,建议安装,很简单)打开Redis服务器的配置文件redis.conf

sudo vim /etc/redis/redis.conf

敲下“/”然后输入bind,这是vim的搜索功能(回车以后,按下“n”为查找下一个,“N”为查找上一个!)
3.png

把bind 127.0.0.1 ::1注释掉

# bind 127.0.0.1 ::1

  1. 修改完成,重启生效

    sudo /etc/init.d/redis-server restart

    1
    [ ok ] Restarting redis-server (via systemctl): redis-server.service.
  2. 带密码登陆redis客户端

    redis-cli -a redis233666888

  3. 监听redis的端口

    netstat -nlt|grep 6379

    1
    2
    tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN     
    tcp6 0 0 :::6379 :::* LISTEN

    可以观察到,IP地址从127.0.0.1变成了四个0,表示已经支持远程登陆。

总结

安装和配置使用,大概就这么多内容了。关于如何操作Redis那不是本次博文的的主题,日后有机会,再进行说明吧