【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

完。

相关推荐
小蒜学长6 小时前
springboot党建云课堂学习与管理系统(代码+数据库+LW)
java·数据库·spring boot·后端·学习
2601_962180336 小时前
FlinkCDC 实现 MySQL 数据变更实时同步
数据库·mysql
2601_962189606 小时前
深入浅出MySQL:概述与体系结构解析
数据库·mysql
Gain_chance7 小时前
大数据毕业设计实战|Data Insight Platform:用 FastAPI + ClickHouse 打造低门槛全链路数据洞察平台
大数据·数据库·clickhouse·毕业设计·fastapi
harmony&7 小时前
ETCD 存储系统实战:从单节点部署到 Kubernetes 高可用集群
数据库·kubernetes·etcd
2601_962066498 小时前
【玩转全栈】----Django模板的继承
数据库·django·sqlite
一只小bit8 小时前
Redis哨兵机制、主从复制与集群搭建与维护
数据库·redis·bootstrap
zlwool15 小时前
图纸管理选型避坑指南
数据库·erp·设备erp·非标机械
智购科技无人售货机厂家15 小时前
2026自动售货机制冷系统维护指南:从散热器清洁到压缩机换油的工程实践~YH
运维·redis·物联网·缓存·架构
小灰灰搞电子16 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt