C++客户端---String类型

SET/GET

cpp 复制代码
#include<iostream>
#include<vector>
#include<string>
#include<unordered_map>
#include<sw/redis++.h>
#include<chrono>
#include<thread>
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<<time<<std::endl;  
}
int main()
{
    sw::redis::Redis redis("tcp://127.0.0.1:6379");
    test(redis);
}
NX/EX版本
cpp 复制代码
#include<iostream>
#include<vector>
#include<string>
#include<unordered_map>
#include<sw/redis++.h>
#include<chrono>
#include<thread>
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<<value.value()<<std::endl;
    }
    else
    {
        std::cout<<"key1不存在"<<std::endl;
    }
}
int main()
{
    sw::redis::Redis redis("tcp://127.0.0.1:6379");
    test(redis);
}

MSET/MGET

cpp 复制代码
#include<iostream>
#include<vector>
#include<string>
#include<unordered_map>
#include<sw/redis++.h>
#include<chrono>
#include<thread>
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<std::pair<std::string,std::string>> 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"<<value.value()<<std::endl;
}
auto value = redis.get("key2");
if(value)
{
    std::cout<<"value"<<value.value()<<std::endl;
}
auto value = redis.get("key3");
if(value)
{
    std::cout<<"value"<<value.value()<<std::endl;
}
//mget
vector<std::redis::OptionalString> 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的参数列表

GETRANGE/SETRANGE

GETRANGE
返回值:

string类型,因为该函数即使拿不到子串,返回值也就是个空串,不会是nil

SETRANGE

第二个参数:从哪一个下标开始覆盖新字符串

第三个参数:新字符串

cpp 复制代码
#include<iostream>
#include<vector>
#include<string>
#include<unordered_map>
#include<sw/redis++.h>
#include<chrono>
#include<thread>
void test(sw::redis::Redis& redis)
{
    redis.flushall();
    redis.set("key","abcdefgh");
    string result = redis.getrange("key",2,5);
    std::cout<<result<<std::endl;
    //返回值long long类型
    redis.setrange("key",2,"xyz");
    auto value = redis.get("key);
    std::cout<<value.value()<<std;;endl;
}
int main()
{
    sw::redis::Redis redis("tcp://127.0.0.1:6379");
    test(redis);
}

INCR DECR

INCR
cpp 复制代码
#include<iostream>
#include<vector>
#include<string>
#include<unordered_map>
#include<sw/redis++.h>
#include<chrono>
#include<thread>
void test(sw::redis::Redis& redis)
{
    redis.flushall();
    redis.set("key","100");
    long long result = redis.incr();
    std::cout<<result<<std::endl;
    //返回值long long类型
    long long result = redis.decr("key");
    std::cout<<result<<std;;endl;
}
int main()
{
    sw::redis::Redis redis("tcp://127.0.0.1:6379");
    test(redis);
}
相关推荐
神仙别闹6 小时前
基于 C++ 实现(控制台)学生成绩管理系统
开发语言·c++
会周易的程序员6 小时前
5 节点边缘冗余方案(上):基于 aiRaft 的物联网高可用控制面设计
c++·分布式·物联网·raft·iot·共识
伞伞悦读6 小时前
【第36期】Python 目录与路径详解:pathlib、文件遍历、创建、复制、移动和删除风险
开发语言·python
qq_199886879 小时前
第6板块·第4节:构建系统与多文件项目
c++·人工智能·gpu算力
2601_966949659 小时前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
m0_734571769 小时前
深入理解5g <十八>传输块tbsize的计算
开发语言·5g
汉克老师10 小时前
GESP2026年9月认证C++三级( 第三部分编程题(2、分割字符串))精讲
c++·gesp·小学生·学c++编程
估值探索者10 小时前
【Python量化系统工程化 #08】关了 SSH 就停?systemd 让脚本开机自启 + 异常自动拉起
java·c++·人工智能·分类·数据挖掘
RAN114267600811 小时前
1.3第一个程序的介绍
开发语言·qt
天若有情67311 小时前
C++花式魔改!手写头文件复刻Java语法,彻底打破编码思维定式
java·c++·语言做语言·jac++