C++使用redis的实现步骤

 更新时间:2025年05月12日 09:41:35   作者:戴墨镜的恐龙  
本文主要介绍了C++中的redis-plus-plus库来操作Redis服务器,包括连接到Redis服务器、执行各种命令(如get、set、list、set等)、以及处理返回值和错误,具有一定的参考价值,感兴趣的可以了解一下

1. redis客户端

在前面的学习种,我们都是使用redis命令行客户端手动执行操作的;但是更多的时候,需要使用redis的api,来实现定制化的redis客户端程序,进一步操作redis服务器(即用程序操作redis)。

在这里插入图片描述

我们知道redis是使用网络通信来实现的,那么有网络通信就一定要有协议;redis有自己的应用层协议:RESP

在这里插入图片描述

RESP是基于TCP的,请求和应答是一问一答式的

在这里插入图片描述

下面是协议的类型:

在这里插入图片描述

redis客户端、服务器就是按照上述格式,构造字符串,向socke中写入;从socket中读取字符串,按照上述格式解析。

在我们使用协议的时候,不需要再按照上述格式,构造、解析字符串了;因为已经有大佬们写好了,我们只需要使用人家写的库就可以了。

库有很多,我们使用redis-plus-plus:https://github.com/sewenew/redis-plus-plus

Ubuntu系统下:

  • 安装hiredis: redis-plus-plus 是基于hiredis 实现的
apt install libhiredis-dev
  • 安装redis-plus-plus
git clone https://github.com/sewenew/redis-plus-plus.git

在这里插入图片描述

测试环境

在这里插入图片描述

在这里插入图片描述

2. 使用通用命令

get / set

在这里插入图片描述

exists、del

在这里插入图片描述

keys

在这里插入图片描述

expire、ttl

在这里插入图片描述

type

在这里插入图片描述

3. 使用string命令

get、set、过期时间

在这里插入图片描述

nx、ex

在这里插入图片描述

mset、mget

在这里插入图片描述

getrange、setrange

在这里插入图片描述

incr、decr

在这里插入图片描述

4. 使用list命令

lpush、rpush、lrange

在这里插入图片描述

rpop、lpop、brpop、blpop、llen

在这里插入图片描述

blpop与brpop的返回值:OptionalStringPair,里面是包裹了一个pair,pair里面是string;

  • pair.first:元素属于哪个list
  • pair.second:当前pop的元素

在这里插入图片描述

我们可以发现,redis-plus-plus这个库的风格还是非常统一的。

  • 当一个函数,参数需要传递多个值的时候,往往都是支持 初始化列表 或者是一对迭代器 的方式来进行实现的
  • 当一个函数返回值需要表示多个数据的时候,也往往会借助插入迭代器,来实现往一个容器中添加元素的效果
  • 当某些场景涉及到无效值的时候,往往会搭配 std:optional 来进行使用

5. 使用set命令

  • sadd、smembers、sismember

在这里插入图片描述

scard、spop

在这里插入图片描述

sinter、sinterstore、sunionstore

在这里插入图片描述

6. 使用hash命令

hset、hget、hexists、hdel

在这里插入图片描述

hkeys、hvals

在这里插入图片描述

hmset、hmget

在这里插入图片描述

7. 使用zset命令

zadd、zrange

在这里插入图片描述

zcard、zrem

在这里插入图片描述

zscore、zrank

在这里插入图片描述

到此这篇关于C++使用redis的实现步骤的文章就介绍到这了,更多相关C++使用redis内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • 利用Qt绘制雷达扫描效果

    利用Qt绘制雷达扫描效果

    这篇文章主要为大家详细介绍了如何利用Qt绘制简单的雷达扫描效果,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2023-04-04
  • C++模拟如何实现vector

    C++模拟如何实现vector

    这篇文章主要介绍了C++模拟如何实现vector问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • OpenCV实现区域分割和区域生长

    OpenCV实现区域分割和区域生长

    区域分割是图像处理中一个重要的任务,本文主要介绍了OpenCV实现区域分割和区域生长,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • c++作用域运算符用法(全局变量和局部变量)

    c++作用域运算符用法(全局变量和局部变量)

    这篇文章主要介绍了c++作用域运算符用法,需要的朋友可以参考下
    2014-04-04
  • C++实现双向冒泡排序算法

    C++实现双向冒泡排序算法

    这篇文章主要为大家详细介绍了C++实现双向冒泡排序算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • Qt无边框窗口拖拽和阴影的实现

    Qt无边框窗口拖拽和阴影的实现

    自定义窗口控件的无边框,窗口事件由于没有系统自带边框,无法实现拖拽拉伸等事件的处理,本文主要介绍了Qt无边框窗口拖拽和阴影的实现,感兴趣的可以了解一下
    2024-01-01
  • C语言解读数组循环右移问题

    C语言解读数组循环右移问题

    这篇文章主要介绍了C语言解读数组循环右移问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C++中inline用法案例详解

    C++中inline用法案例详解

    这篇文章主要介绍了C++中inline用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • C语言之通讯录的模拟实现代码

    C语言之通讯录的模拟实现代码

    这篇文章主要介绍了C语言之通讯录的模拟实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • C++实现自顶向下的归并排序算法

    C++实现自顶向下的归并排序算法

    这篇文章主要介绍了C++实现自顶向下的归并排序算法,结合实例详细分析了自顶向下的归并排序算法的原理与具体实现步骤,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12

最新评论