天天看点

Redis开发与运维. 1.5 正确安装并启动Redis

<b>1.5 正确安装并启动redis</b>

通常来说,学习一门技术最好的方法就是实战,所以在学习redis这样一个实战中产生的技术时,首先把它安装部署起来,值得庆幸的是,相比于很多软件和工具部署步骤繁杂,redis的安装不得不说是非常简单,本节我们将学习如何安装redis。

在写本书时,redis 4.0已经发布rc版,但是大部分公司还都在使用3.0或更早的版本(2.6或2.8),本书所讲的内容基于redis 3.0。

<b>1.5.1 安装redis</b>

1.?在linux上安装redis

redis能够兼容绝大部分的posix系统,例如linux、os x、openbsd、netbsd和freebsd,其中比较典型的是linux操作系统(例如centos、redhat、ubuntu、debian、os x等)。在linux安装软件通常有两种方法,第一种是通过各个操作系统的软件管理软件进行安装,例如centos有yum管理工具,ubuntu有apt。但是由于redis的更新速度相对较快,而这些管理工具不一定能更新到最新的版本,同时前面提到redis的安装本身不是很复杂,所以一般推荐使用第二种方式:源码的方式进行安装,整个安装只需以下六步即可完成,以3.0.7版本为例:

$ wget

http://download.redis.io/releases/redis-3.0.7.tar.gz

$ tar xzf redis-3.0.7.tar.gz

$ ln -s redis-3.0.7 redis

$ cd redis

$ make

$ make install

1)下载redis指定版本的源码压缩包到当前目录。

2)解压缩redis源码压缩包。

3)建立一个redis目录的软连接,指向redis-3.0.7。

4)进入redis目录。

5)编译(编译之前确保操作系统已经安装gcc)。

6)安装。

这里有两点要注意:第一,第3步中建立了一个redis目录的软链接,这样做是为了不把redis目录固定在指定版本上,有利于redis未来版本升级,算是安装软件的一种好习惯。第二,第6步中的安装是将redis的相关运行文件放到/usr/local/bin/下,这样就可以在任意目录下执行redis的命令。例如安装后,可以在任何目录执行redis-cli –v查看redis的版本。

$ redis-cli -v

redis-cli 3.0.7

第12章将介绍更多linux配置优化技巧,为redis的良好运行保驾护航。

2.?在windows上安装redis

redis的官方并不支持微软的windows操作系统,但是redis作为一款优秀的开源技术吸引到了微软公司的注意,微软公司的开源技术组在github上维护一个redis的分支:https://github.com/msopentech/redis。

那为什么redis的作者没有开发和维护针对windows用户的redis版本呢?这里可以简单分析一下:首先redis的许多特性都是和操作系统相关的,windows操作系统和linux操作系统有很大的不同,所以会增加维护成本,而且更重要的是大部分公司都在使用linux操作系统,而redis在linux操作系统上的表现已经得到了实践的验证。对于使用windows操作系统的读者,可以通过安装虚拟机来体验redis的诸多特性。

对windows版本的redis感兴趣的读者,可以尝试安装和部署windows版本的redis,但是本书中的知识和例子不能确保在windows下能够运行。

<b>1.5.2 配置、启动、操作、关闭redis</b>

redis安装之后,src和/usr/local/bin目录下多了几个以redis开头可执行文件,我们称之为redis

shell,这些可执行文件可以做很多事情,例如可以启动和停止redis、可以检测和修复redis的持久化文件,还可以检测redis的性能。表1-2中分别列出这些可执行文件的说明。

表1-2 redis可执行文件说明

 可执行文件  作  用

redis-server     启动redis

redis-cli    redis命令行客户端

redis-benchmark      redis基准测试工具

redis-check-aof         redis aof持久化文件检测和修复工具

redis-check-dump    redis rdb持久化文件检测和修复工具

redis-sentinel  启动redis sentinel

redis持久化和redis sentinel分别在第5章和第9章才会涉及,redis基准测试将在第3章介绍,所以本节只对redis-server、redis-cli进行介绍。

1.?启动redis

有三种方法启动redis:默认配置、运行配置、配置文件启动。

(1)默认配置

这种方法会使用redis的默认配置来启动,下面就是redis-server执行后输出的相关日志:

$ redis-server

12040:c 11 jun 17:28:39.464 # warning: no

config file specified, using the

default config. in order to specify a config file use ./redis-server

/path/

to/redis.conf

                _._                                                 

_.-``__ ''-._                                            

_.-``    `.  `_. 

''-._           redis 3.0.7

(00000000/0) 64 bit

.-`` .-```.  ```\/    _.,_ ''-._                                  

 (   

'      ,       .-` 

| `,    )     running in standalone mode

 |`-._`-...-` __...-.``-._|'` _.-'|     port: 6379

 |   

`-._   `._    /    

_.-'    |     pid: 12040

`-._    `-._  `-./ 

_.-'    _.-'                                  

 |`-._`-._   

`-.__.-'    _.-'_.-'|                                 

`-._`-._        _.-'_.-'    |          

http:// redis.io       

`-._    `-._`-.__.-'_.-'    _.-'                                  

`-._`-._        _.-'_.-'    |                                 

`-._    `-._`-.__.-'_.-'    _.-'                                   

`-._    `-.__.-'    _.-'                                      

`-._        _.-'                                          

              `-.__.-'                                              

12040:m 11 jun 17:28:39.470 # server

started, redis version 3.0.7

12040:m 11 jun 17:28:39.470 * the server is

now ready to accept connections on

port 6379

可以看到直接使用redis-server启动redis后,会打印出一些日志,通过日志可以看到一些信息,上例中可以看到:

当前的redis版本的是3.0.7。

redis的默认端口是6379。

redis建议要使用配置文件来启动。

因为直接启动无法自定义配置,所以这种方式是不会在生产环境中使用的。

(2)运行启动

redis-server加上要修改配置名和值(可以是多对),没有设置的配置将使用默认配置:

# redis-server --configkey1 configvalue1

--configkey2 configvalue2

例如,如果要用6380作为端口启动redis,那么可以执行:

# redis-server --port 6380

虽然运行配置可以自定义配置,但是如果需要修改的配置较多或者希望将配置保存到文件中,不建议使用这种方式。

(3)配置文件启动

将配置写到指定文件里,例如我们将配置写到了/opt/redis/redis.conf中,那么只需要执行如下命令即可启动redis:

# redis-server /opt/redis/redis.conf

redis有60多个配置,这里只给出一些重要的配置(参见表1-3),其他配置会随着不断深入学习进行介绍,第14章会将所有的配置说明进行汇总。

表1-3 redis的基础配置

配置名     配置说明

port 端口

logfile       日志文件

dir    redis工作目录(存放持久化文件和日志文件)

daemonize       是否以守护进程的方式启动redis

redis目录下都会有一个redis.conf配置文件,里面就是redis的默认配置,通常来讲我们会在一台机器上启动多个redis,并且将配置集中管理在指定目录下,而且配置不是完全手写的,而是将redis.conf作为模板进行修改。

显然通过配置文件启动的方式提供了更大的灵活性,所以大部分生产环境会使用这种方式启动redis。

2.?redis命令行客户端

现在我们已经启动了redis服务,下面将介绍如何使用redis-cli连接、操作redis服务。redis-cli可以使用两种方式连接redis服务器。

第一种是交互式方式:通过redis-cli -h {host} -p {port}的方式连接到redis服务,之后所有的操作都是通过交互的方式实现,不需要再执行redis-cli了,例如:

redis-cli -h 127.0.0.1 -p 6379

127.0.0.1:6379&gt; set hello world

ok

127.0.0.1:6379&gt; get hello

"world"

第二种是命令方式:用redis-cli -h ip {host} -p {port} {command}就可以直接得到命令的返回结果,例如:

redis-cli -h 127.0.0.1 -p 6379 get hello

这里有两点要注意:1)如果没有-h参数,那么默认连接127.0.0.1;如果没有-p,那么默认6379端口,也就是说如果-h和-p都没写就是连接127.0.0.1:6379这个redis实例。2)redis-cli是学习redis的重要工具,后面的很多章节都是用它做讲解,同时redis-cli还提供了很多有价值的参数,可以帮助解决很多问题,有关于redis-cli的强大功能将在第3章进行详细介绍。

3.?停止redis服务

redis提供了shutdown命令来停止redis服务,例如要停掉127.0.0.1上6379端口上的redis服务,可以执行如下操作。

$ redis-cli shutdown

可以看到redis的日志输出如下:

# user requested shutdown...         #客户端发出的shutdown命令

* saving the final rdb snapshot before

exiting.

#保存rdb持久化文件(有关redis持久化的特性在1.2节已经进行了简单的介绍,rdb是redis的一种

 持久化方式)

* db saved on disk            #将rdb文件保存在磁盘上

# redis is now ready to exit, bye bye...   #关闭

当使用redis-cli再次连接该redis服务时,看到redis已经“失联”。

$ redis-cli

could not connect to redis at 127.0.0.1:6379:

connection refused

这里有三点需要注意一下:

1)redis关闭的过程:断开与客户端的连接、持久化文件生成,是一种相对优雅的关闭方式。

2)除了可以通过shutdown命令关闭redis服务以外,还可以通过kill进程号的方式关闭掉redis,但是不要粗暴地使用kill

-9 强制杀死redis服务,不但不会做持久化操作,还会造成缓冲区等资源不能被优雅关闭,极端情况会造成aof和复制丢失数据的情况。

3)shutdown还有一个参数,代表是否在关闭redis前,生成持久化文件:

redis-cli shutdown nosave|save

继续阅读