【Redis】Ubuntu22.04安装redis++

文章目录

  • 前言
  • [1. 安装 hiredis](#1. 安装 hiredis)
  • [2. 下载redis-plus-plus源码](#2. 下载redis-plus-plus源码)
  • [3. 编译/安装](#3. 编译/安装)
  • [4. 程序连接Redis服务器](#4. 程序连接Redis服务器)

前言

Redis 是一款强大的中间件。我们平常在开发的过程中使用 Redis 通常是通过我们自定义的客服端去访问 Redis 的服务器。所幸,Redis 采用的应用层协议是开源的,所以这也使得业界很多大佬已经开发出来相当多的连接 Redis 服务器的开源方法了。

这篇文章主要介绍如何在 Ubuntu 环境下安装 redis-plus-plus

下面的操作建议拥有管理员权限

1. 安装 hiredis

redis-plus-plus 是依赖于hiredis 的。hiredis是一个基于C语言实现的 redis 客服端。因此我们需要先安装 hiredis。我们之间使用包管理器安装即可。

bash 复制代码
apt install libhiredis-dev

2. 下载redis-plus-plus源码

我们之间在命令行上 git clone 即可

如果没有 git 工具的小伙伴直接使用 apt-get 下载即可。

bash 复制代码
 git clone https://github.com/sewenew/redis-plus-plus.git
  • 下载完成之后:

3. 编译/安装

  1. 进入目录 redis-plus-plus
bash 复制代码
cd redis-plus-plus
  1. 建议创建一个目录 build(该目的是为了将编译文件和源文件分离,避免污染)
bash 复制代码
mkdir build
cd build
  1. 使用 cmake 创建 makefile
bash 复制代码
cmake ..
  • 结果:

  1. 使用 make 编译
bash 复制代码
make
  • 等待编译完成 100% 即可。

  1. 安装库路径
bash 复制代码
make install

在我们编译完成之后,当前下面就有很多的动静态库文件,我们需要安装到系统默认路径下面:

所以采用上面指令。

  1. 检查一下,系统路径下面是否有了 redis++
bash 复制代码
find /usr/local/include/ -name "*redis*"
  • 如下图:

    如果找到了说明应该是安装成功了!

我们还需要找到两个比较重要的库:

  • 后面形成可执行的时候需要指明

4. 程序连接Redis服务器

cpp 复制代码
#include <iostream>
#include <string>
#include <sw/redis++/redis++.h>

int main() {
    // 创建 Redis 对象的时候, 需要在构造函数中, 指定 redis 服务器的地址和端口. 
    sw::redis::Redis redis("tcp://127.0.0.1:6379");
    // 调用 ping 方法, 让客户端给服务器发了一个 PING, 然后服务器就会返回一个 PONG. 就通过 返回值 获取到. 
    std::string result = redis.ping();
    std::cout << result << std::endl;
    return 0;
}
bash 复制代码
g++ -o myhello hello.cc -std=c++17 -lpthread /usr/local/lib/libredis++.a /usr/lib/x86_64-linux-gnu/libhiredis.a
  • 我们采用如上的方式进行编译,得到结果:

    说明我们的 redis++ 就已经能够正常使用了!

后面的两个都是为了给 ld(链接器)指明我们的方式的实现位置。为了能够不带有路径的编译,我们可以在系统路径下建立软连接

bash 复制代码
sudo ln -s /usr/local/lib/libredis++.a /usr/lib/libredis++.a
sudo ln -s /usr/lib/x86_64-linux-gnu/libhiredis.a /usr/lib/libhiredis.a

后面的编译,我们只需要指定链接的库是谁即可:

bash 复制代码
g++ -o myhello hello.cc -std=c++17 -lpthread -lredis++ -lhiredis

完。

相关推荐
爱可生开源社区2 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1772 天前
《从零搭建NestJS项目》
数据库·typescript
加号33 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏3 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐3 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再3 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest3 天前
数据库SQL学习
数据库·sql
jnrjian3 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle
十月南城3 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark
Henry Zhu1233 天前
数据库:并发控制基本概念
服务器·数据库