游乐游手机版
首页/编程语言/文章详情

C++客户端开发字符串类型实例详解与实战教程

时间:2026-07-22 19:36
基于C++客户端操作Redis的String类型,通过SET命令设置带过期时间的键值对,并利用GET和TTL命令获取键值及剩余存活时间,演示了过期时间设置与查询功能,实现了数据自动过期管理。

SET/GET

对于Redis的String类型,最基础的操作就是SET和GET。先看一个简单的例子,这里演示了如何设置带过期时间的key,以及如何获取TTL剩余时间。

#include
#include
#include
#include
#include
#include
#include
void test(sw::redis::Redis& redis)
{
    //引入命名空间
    using namespace std::chrono_literals;
    redis.flushall();
    //没引入命名空间版本
    //redis.set("key","111",std::chrono::seconds(10s));
    //引入命名空间版本
    redis.set("key","111",10s);
    //std::this_thread::sleep_for(std::chrono::seconds(3s));
    std::this_thread::sleep_for(3s);
    long long time = redis.ttl("key");
    std::cout<

NX/EX版本

在实际业务中,经常会遇到“只有key不存在时才设置”或者“只有key存在时才更新”的需求。Redis的SET命令原生支持NX和XX选项,而C++客户端也把这两个选项封装成了UpdateType枚举。注意,使用EX/XX时必须搭配过期时间,哪怕想长期存储也得传一个0s。来看下面的代码,它演示了NX和XX的用法,以及如何通过get判断key是否存在。

#include
#include
#include
#include
#include
#include
#include
void test(sw::redis::Redis& redis)
{
    //引入命名空间
    using namespace std::chrono_literals;
    redis.flushall();
    //想写EX/XX版本必须要搭配过期时间来使用,想长期存储的话设置时间0s
    //NX版本
    redis.set("key1","111",0s,sw::redis::UpdateType::NOT_EXISTS);
    //XX版本
    redis.set("key1","222",0s,sw::redis::UpdateType::EXISTS);
    auto value = redis.get("key1");
    if(value)
    {
        std::cout<

MSET/MGET

批量操作能明显减少网络往返。MSET和MGET分别对应一次设置多个key和一次获取多个key。官方API提供了两种写法:一种是直接传一个pair的初始化列表,另一种是传迭代器范围。下面代码同时展示了两种方式,以及通过mget批量获取结果。

#include
#include
#include
#include
#include
#include
#include
void test(sw::redis::Redis& redis)
{
   redis.flushall();
    //写法1
redis.mset({std::make_pair("key1","111"),std::make_pair("key2","222"),std::make_pair("key3","333")});
    //写法2
std::vector> keys = {{"key1","111"},{"key2","222"},{"key3","333"}};
redis.mset(keys.begin(),keys.end());
//get方法1
auto value = redis.get("key1");
if(value)
{
    std::cout<<"value"< result;
auto it = std::back_inserter(result);
redis.mget({"key1","key2","key3"},it);
}
int main()
{
    sw::redis::Redis redis("tcp://127.0.0.1:6379");
    test(redis);
}

MGET的参数列表

C++客户端String类型实例详解

GETRANGE/SETRANGE

GETRANGE

C++客户端String类型实例详解

返回值:string类型。注意,即使子串不存在,返回的也是空字符串,而不是nil——这一点和Redis原生命令保持一致,但C++的OptionalString在这里不会出现。

SETRANGE

C++客户端String类型实例详解

第二个参数表示从哪个下标开始覆盖新字符串,第三个参数就是新字符串本身。下面的代码先设置了一个初始值“abcdefgh”,然后通过getrange截取子串“cdef”,再通过setrange从下标2开始覆盖为“xyz”,最终得到“abxyzfgh”。

#include
#include
#include
#include
#include
#include
#include
void test(sw::redis::Redis& redis)
{
    redis.flushall();
    redis.set("key","abcdefgh");
    string result = redis.getrange("key",2,5);
    std::cout<

INCR DECR

INCR

数值自增自减操作在计数器场景中非常常见。Redis的INCR/DECR命令返回的是操作后的新值,C++客户端直接返回long long类型。下面代码把key初始化为“100”,然后自增得到101,再自减回到100。

#include
#include
#include
#include
#include
#include
#include
void test(sw::redis::Redis& redis)
{
    redis.flushall();
    redis.set("key","100");
    long long result = redis.incr();
    std::cout<
来源:https://www.jb51.net/program/367805qia.htm
上一篇Maven直接获取内部模块类路径的代码实现详解 下一篇C++ static关键字用法大全详解及最佳实践案例分析
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
FileZilla断点续传设置与操作指南
编程语言 · 2026-07-25

FileZilla断点续传设置与操作指南

FileZilla支持断点续传,需客户端与服务器均开启REST命令。设置中确保启用断点续传及继续传输选项。中断后自动或手动从断点恢复。注意服务器支持、传输模式匹配及文件完整性校验。

Debian系统C++编译器位置查找方法
编程语言 · 2026-07-25

Debian系统C++编译器位置查找方法

在Debian系统中,通过apt安装的C++编译器g++默认位于 usr bin g++,可使用which或whereis命令验证路径。g++属于build-essential软件包,若未安装则需执行sudoaptinstallbuild-essential。该包还包含gcc、make等编译工具链,g++是GNUC++编译器,实际是符号链接指向具体版本,验证

Debian系统安装C++环境的方法
编程语言 · 2026-07-25

Debian系统安装C++环境的方法

在Debian系统安装C++开发环境:先sudoaptupdate更新包列表,再sudoaptinstallbuild-essential安装编译工具链,或单独安装g++。用g++--version验证。可选安装VSCode、GDB、CMake等工具并配置默认编译器版本。

Debian系统C++开发环境配置指南
编程语言 · 2026-07-25

Debian系统C++开发环境配置指南

在Debian系统中,先执行aptupdate更新软件包列表,再安装build-essential元包即可获得GCC、G++、Make和GDB。通过运行g++--version命令验证编译器安装成功。可选安装VisualStudioCode、CLion等编辑器及CMake构建工具,并编写一个简单的HelloWorld程序,使用g++编译运行以验证环境配置正确

通过cpustat工具查看CPU状态的具体方法与详细步骤
编程语言 · 2026-07-25

通过cpustat工具查看CPU状态的具体方法与详细步骤

cpustat是sysstat包中的CPU监控工具,可按固定间隔输出带时间戳的CPU使用率统计。安装后运行cpustat即可实时显示各核心信息,常用指标包括%usr、%sys、%iowait、%steal和%idle,用于定位用户态、内核态或I O瓶颈。高级选项-c可显示单核统计,-m可同时查看内存使用,适合脚本采集和性能分析。