![高效使用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=1738888599-yttwQGFv3smPQ28VfmKF3A1JtgS4mF9i-0-75fd820407b8c47f1cd2aa494368bdb4)
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/14_01.jpg?sign=1738888599-fo2JRCUbC5909f5STSbKDfdveIvhVAFM-0-87f407274ef78d15c1c6e52c2695a77b)
如果在CentOS系统上编译,用户可能会遇到如下报错信息:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/14_02.jpg?sign=1738888599-kDFrVa01k6L0RhjEQMTKP0q7Swcfg40m-0-79ce1bdef71027a1788f93bd95a87ae6)
可以按照如下办法尝试解决。
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/14_03.jpg?sign=1738888599-1cuCpHMmdJQ1feAHWxYKL1kL1cAgtdZj-0-a1267b602631951fb998f8942d7192a7)
然后执行make命令。
至此,Redis 6.0.0的安装、编译完成。生成的可执行文件在/usr/local/bin目录下。
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/14_04.jpg?sign=1738888599-5rHItwRNRNH4Y7WJcP7aHuAhSeVXxoKw-0-9d20dd291bae8b20c476bc4e26ae1e8c)
说明:
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=1738888599-hMzzz05iICwzoEZuFzHg3sDWekcLxkIc-0-9a8077dec3a29906619c326df818f823)
使用redis-cli连接Redis服务器,并添加key-value对:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_02.jpg?sign=1738888599-Bth3xjz8hdZF5VPXagORDbDXSD8ZiA2n-0-e4cda6c2c5aa1faeb960aebccb37505f)
GDB是由GNU开源组织发布的,在UNIX/Linux操作系统下工作,是一个基于命令行的功能强大的程序调试工具。下面介绍如何通过GDB来调试Redis。
GDB启动redis-server服务端程序:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_03.jpg?sign=1738888599-vhjTWO3Qp5pK9dBHO6tnmcoOwWPqjwzH-0-c7e9368c19ccd53ea192371478f8dc5d)
使用b命令在main函数入口增加断点:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_04.jpg?sign=1738888599-C8LSbc7nPCNdZ4DthBfpvddFtoRtKdEh-0-4636c340e1a4e26b484e1d3deda65f8b)
使用r命令运行:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_05.jpg?sign=1738888599-pMcfOh3cEP6TCfcyR400yz4YvOe712X2-0-355795a4014af7fd8f929e92f972c8ee)
从上面的输出结果可以看到,代码在main函数处停止执行。接下来,使用n命令执行下一步操作:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_06.jpg?sign=1738888599-wH8zbG1q9Y9bXIN4hfcV180gaDZOVQWa-0-49f549a5996bc019133373f60c424dec)
使用p命令查看某个变量的信息:
![](https://epubservercos.yuewen.com/EB772E/28831539403171806/epubprivate/OEBPS/Images/15_07.jpg?sign=1738888599-V3L0Ct49MWvcWlhYhWwMSmoVlDDq4CGN-0-3c01c351088c9e6f8167c898712f8e88)
这里只是简要介绍使用GDB调试Redis程序,更多GDB的使用技巧还有待读者去研究。
当然阅读源码时,还有很多比较方便的源码阅读工具可供使用。例如,Windows环境下有一款功能强大的IDE—Source Insight,它内置了C++代码分析功能,还能自动维护项目内的符号数据库,非常方便;Mac环境下有功能强大的IDE—Understand,它具备代码依赖、图形化等实用功能;Linux环境下可以使用Vim+Ctags来阅读源码,其中Ctags是Vi m下阅读源码的一个辅助工具,可以生成函数、类、结构体、宏等语法结构的索引文件,它的使用方法也非常简单。关于这些源码阅读工具的具体安装、使用教程,读者可以自行查阅,这里不做详细介绍。