【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

完。

相关推荐
ClickHouseDB43 分钟前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
m0_639906941 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
时间售卖铺2 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw2 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社3 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙3 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
captain3764 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你02145 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川5 小时前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化
数据库小组5 小时前
NineData 实战教程:MySQL 5.5 数据迁移同步到 MySQL 8.0(跨版本升级)
数据库·mysql·mysql优化·数据库开发·数据库迁移·版本升级·数据复制