【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 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
科技小花7 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸7 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain7 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希7 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神8 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员8 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java8 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿8 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
不知名的老吴8 小时前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存