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);
}