1、下载和安装Redis
我们将在Ubuntu中演示Reds的编译和安装。下载及构建的步骤如下:
1.1、安装编译工具:
sudo apt-get install build-essential
1.2、为Reds创建目录并切换到所创建的目录中:
mkdir /redis
cd /redis
1.3、下载 Redis:
wget http://download.redisio/releases/redis-4.0.1.tar.gz
1.4、解压下载到的 Redis源码并切换到对应的目录下:
tar zxvf redis-4.0.1.tar. gz
cd redis-4 0.1
1.5、为 Redis的配置文件创建目录并把默认配置文件复制进去:
mkdir /redis/conf
cp redis.conf /redis/conf/
1.6、编译依赖项:
cd deps
make hiredis lua jemalloc linenoise
cd ..
注意
由于不同操作系统及安装在操作系统中的库之间存在差异,此前提到的步骤可能会出现缺少某些依赖的错误。例如,读者可能会碰到如下的错误消息:zma1oc.h:50:31:fatal error:jemalloc/jemalloch: No such file or directory。如果没有依赖项相关的报错,则这一步并非是必需的。
1.7、编译 Redis:
make
如果编译顺利,将看到如下的提示,代表已经成功地完成了编译:
It's a good idea to run 'make test' ;)
make[1]: Leaving directory '/redis/redis-4.0.1/src'
1.8、安装 Redis:
make PREFIX=/redis install
1.9、进入/redis目录并验证生成了Redis的二进制可执行文件
ls /redis/bin
redis-benchmark redis-check-aof redis-check-rdb redis-cli redig-sentinel redis-server
恭喜!这样就完成 Redis的编译和安装了。
2、bin目录中会有一些可执行文件
| 文件名 | 描述 | 备注 |
| redis-server | Redis服务端 | |
| redis-sentinel | Redis Sentinel | redis-server的软链接 |
| redis-cli | Redis命令行工具 | |
| redis-check-rdb | Redis RDB检查工具 | |
| redis-check-aof | Redis Append Only Files(AOF)检查工具 | |
| redis-benchmark | Redis基准/性能测试工具 |
3、启动和停止Redis
在使用Redis前,我们必须正确地启动Redis服务。同样,在某些情况下,我们又不得不停止Redis服务。启动和停止Redis服务端的步骤如下。
3.1、我们可以使用默认配置来启动一个 Redis实例:
bin/redis-server
服务端此时应该会启动,如图所示。
3.2、要在启动 Redis服务端时指定配置文件
例如欲使用我们从源码包中拷贝过来的配置文件时,可以使用如下的命令:
bin/redis-server conf/redis.conf
3.3、如果是从操作系统的软件仓库中安装的Redis,那么可以使用init.d脚本启动 Redis:
/etc/init.d/redis-server start
3.4、如果要以redis- server守护进程的方式在后台启动Redis,那么可以编辑配置文件并将daemonize参数设为yes并使用该配置文件启动:
vim conf/redis.conf
daemonize yes
bin/redis-server conf/redis. conf
下图中的提示信息Configuration loaded说明配置文件已经生效了:
3.5、相应地,我们可以使用Ctr+C(如果Reds是以前台模式启动的),或kill+pid(如果Redis是以后台模式启动的)来停止 Redis服务:
kill `pidof redis-server`
3.6、更加优雅和推荐的停止Redis的方式是通过redis-cli调用shutdown命令:
cd /redis
bin/redis-cli shutdown
3.7、如果Redis是从软件仓库中安装的话,那么还可以通过init.d脚本关闭:
/etc/init.d/redis-server stop
3.8、工作原理
Redis中的术语实例代表一个redis- server进程。同一台主机上可以运行多个Redis实例,只要这些实例使用不同的配置即可,比如绑定到不同的端口、使用不同的路径保存数据持久化相关的文件,或采用不同的日志路径等。
启动和停止Redis实例是基本操作。对于启动 Redis而言没有太多需要注意的;但对于一个数据服务来说,停止Redis服务却尤为需要注意,因为作为一种数据存储服务,学会如何优雅地停止Redis服务端以保持数据的一致性,是非常重要的。
之所以强烈建议使用 shutdown命令停止Redis服务的原因在于,如果我们关心数据一致性且配置了数据持久化来将内存中的数据保存到磁盘中(Redis数据持久化将在第6章持久化中讨论),那么shutdown命令发出后,除了终结进程外,还会执行一系列的其他操作。
首先,redis-server会停止响应客户端的连接;然后,如果启用了持久化,则会执行数据持久化操作。之后,如果.pid文件和socket套接字文件描述符存在的话,则对其进行清理,并最终退出进程。通过这种策略,Redis会尽可能地防止数据丢失。相反,如果粗暴地使用kill命令来终止redis-server进程,那么由于在服务端关闭之前数据可能尚未被持久化而导致数据丢失。
应该注意的是,使用kill命令或其他进程管理工具向Redis进程发送 SIGTERM(15)信号基本上等同于使用shutdown命令优雅地停止redis-server。
4、使用redis-cli连接到Redis
在Redis相关的开发和运维工作中,bin目录中的redis-cli是最常用的工具。使用redis-cli连接到 Redis服务器的步骤如下。
4.1、打开一个终端,并通过redis-cli连接到Redis:
bin/redis-cli
127.0.0.1:6379>
命令行提示符前的提示符是IP地址:Redis监听端口号的形式,这表示redis-cli已经成功地连接到了该Reds实例。
4.2、我们可以发送一些简单的命令进行测试:
设置两个字符串键值对 foo value1和 bar value2:
127.0.0.1: 6379> set foo value1
OK
127.0.0.1: 6379> set bar value2
OK
4.3、通过发送shutdown命令来停止Reds实例:
bin/redis-cli
127.0.0.1:6379> shutdown
not connected>
4.4、在Redis服务器关闭后,命令行提示符会变为 not connected。然后,我们退出redis-cli,并再次使用redis-cli进行连接。这时,会看到如下的错误信息:
not connected>quit
bin/redis-cli
Could not connect to Redis at 127.0.0.1: 6379: Connection refused
Could not connect to Redis at 127.0.0.1: 6379: Connection refused
not connected>
4.5、工作原理
在默认情况下,redis-cli会连接到127.0.0.1:6379(默认端口)上运行的 Redis实例。我们也可以使用-h选项指定要连接到的主机名/IP地址,只需确保redis-cli和Redis服务器端之间的网络连接没有问题即可。
如果 Redis服务器没有运行在默认的6379端口上的话,可以使用redis-cli的-p选项指定端口号。如果同一主机上运行了绑定不同端口号的多个Redis实例,这个选项也很有用。
另外,如果 Redis实例启动了连接密码,那么可以使用-a选项在连接到 Redis时指定密码。
此外,如果 Redis实例启用了Unⅸ套接字文件,那么只需使用-s选项来指定Unix套接字文件即可直接连接到Redis服务器了。
5、获取服务器信息
我们可以通过redis-cli的INFO命令来获得一个Redis实例最全面和重要的信息。
接下来,让我们学习如何获取一个Reds实例的服务器信息。
5.1、连接到一个Redis实例,然后执行INFO命令:
bin/redis-cli
127.0.0.1:6379>INFO
结果形如:
5.2、我们可以通过增加一个可选的<section>参数来指定要获取哪一部分信息
例如,我们可以通过 redis-cli发送 INFO memory来获得内存相关的指标,如图:

5.3、另一种从一个 Redis实例中获取状态信息的方式是直接在shell命令行中使用redis-cli INFO命令。
使用这种方式,可以非常方便地将命令的输出通过管道重定向到一个脚本中来进行指标分析或性能监控。
5.4、工作原理
INFO命令会输出当前所连接到的Redis实例的所有指标,每个指标的格式形如metric-name:metric-value,这种格式可以在后续很容易地进行解析。
下表总结了INFO命令所返回信息的全部段落。
| 段落名称 | 描述 |
| Server | 关于Redis服务器的基本信息 |
| Clients | 客户端连接的状态和指标 |
| Memory | 大致的内存消耗指标 |
| Persistence | 数据持久化相关的状态和指标 |
| Stats | 总体统计数据 |
| Replication | 主从复制相关的状态和指标 |
| CPU | CPU使用情况 |
| Cluster | Redis Cluster的状态 |
| Keyspace | 数据库相关的统计数 |

1194

被折叠的 条评论
为什么被折叠?



