![高效使用Redis:一书学透数据存储与高可用集群](https://wfqqreader-1252317822.image.myqcloud.com/cover/856/49070856/b_49070856.jpg)
1.3 Redis的安装与调试
下面以Linux环境为例来安装Redis。
在http://download.redis.io/releases/上可以获得各个版本的Redis源码。本书以Redis 6.0.0版本为例,介绍源码包(源码包URL为http://download.redis.io/releases/redis-6.0.0.tar. gz)的下载、编译、安装方法。
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/13_01.jpg?sign=1738824945-7hIMxPUdKfwxOFWZ12rDQzIcIwiWHMP2-0-ce1ae8a4bd39c99cc44dc0ffa07468c9)
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/14_01.jpg?sign=1738824945-vNcmRICJqIrmJsiMLPQMZmzF9NPl3DRy-0-f05aed1629df4a739b1393299a1ffaca)
如果在CentOS系统上编译,用户可能会遇到如下报错信息:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/14_02.jpg?sign=1738824945-fY42kjVZRhouhtfbiswGduBZvO7pOkIz-0-b687d1eb46a2a1f3b8802adc87f79894)
可以按照如下办法尝试解决。
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/14_03.jpg?sign=1738824945-xSCOQrQ1iCxAneQhAm7vZIxxV6rFB1LU-0-46db9bd5a8f746b99542040b5ae735d1)
然后执行make命令。
至此,Redis 6.0.0的安装、编译完成。生成的可执行文件在/usr/local/bin目录下。
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/14_04.jpg?sign=1738824945-9WcxEKRyr56RlImZ0rGjGuNVNAbHscI1-0-b7677dc0a3d3da958edaf5badd479619)
说明:
1)redis-benchmark是官方自带的Redis性能测试工具。
2)当AOF或者RDB文件存在语法错误时,可以使用redis-check-aof或者redis-check-rdb修复。
3)redis-cli是客户端命令行工具,可以通过redis-cli -h {host} -p {port}命令连接到指定的Redis服务器。
4)redis-sentinel是Redis哨兵启动程序。
5)redis-server是Redis服务端启动程序。
例如,使用redis-server启动服务端程序(默认监听端口是6379):
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_01.jpg?sign=1738824945-y9CGFHl3y2prRmc26W56qQ3hR7MRMmH6-0-80f5f3e95e81e302ce302a21c24da066)
使用redis-cli连接Redis服务器,并添加key-value对:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_02.jpg?sign=1738824945-QRplJXHXqpDnJ8VsU9v7TGqnIZ2tcKpc-0-9d69bc6222ece2b5c7b90ac1baaf3dda)
GDB是由GNU开源组织发布的,在UNIX/Linux操作系统下工作,是一个基于命令行的功能强大的程序调试工具。下面介绍如何通过GDB来调试Redis。
GDB启动redis-server服务端程序:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_03.jpg?sign=1738824945-69yuZYn5Pl1JrUP7GFNGqJOmxaLQ83XK-0-ec7aacb417900d4de33356935b55f379)
使用b命令在main函数入口增加断点:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_04.jpg?sign=1738824945-vJ5nlwmRB0mcUnvNVhJGQKIdGtWif2cV-0-62e9efcc5ec102006d642137a1e766c9)
使用r命令运行:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_05.jpg?sign=1738824945-cWeuzT1v8ho9Dk9hlPUYXa2plHUdhqfw-0-fcbe1b9c7ef596f971be86ff1b581d1d)
从上面的输出结果可以看到,代码在main函数处停止执行。接下来,使用n命令执行下一步操作:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_06.jpg?sign=1738824945-igVOOS2rqruUJgkxTIgs0BzrwKbp6R2z-0-ff4494791da1dcd7cfee94cde5036ca9)
使用p命令查看某个变量的信息:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_07.jpg?sign=1738824945-luTiI5WVxriAsENmvdmyZ1ijeycA3MY7-0-a4065d4f012ae0636bdad7834beaf027)
这里只是简要介绍使用GDB调试Redis程序,更多GDB的使用技巧还有待读者去研究。
当然阅读源码时,还有很多比较方便的源码阅读工具可供使用。例如,Windows环境下有一款功能强大的IDE—Source Insight,它内置了C++代码分析功能,还能自动维护项目内的符号数据库,非常方便;Mac环境下有功能强大的IDE—Understand,它具备代码依赖、图形化等实用功能;Linux环境下可以使用Vim+Ctags来阅读源码,其中Ctags是Vi m下阅读源码的一个辅助工具,可以生成函数、类、结构体、宏等语法结构的索引文件,它的使用方法也非常简单。关于这些源码阅读工具的具体安装、使用教程,读者可以自行查阅,这里不做详细介绍。