目录
本篇文章主要是通过redis-plus-plus库使用通用命令。
代码案例
下面用一个代码演示:
#include <sw/redis++/redis++.h>
#include <iostream>
#include <vector>
#include <thread>
#include "utils.hpp"
void test1(sw::redis::Redis& redis)
{
std::cout << "get 和 set 的使用:" << std::endl;
redis.flushall();
redis.set("key1", "111");
redis.set("key2", "222");
redis.set("key3", "333");
auto str1 = redis.get("key1");
if(str1) std::cout << "key1:" << str1.value() << std::endl;
auto str2 = redis.get("key2");
if(str2) std::cout << "key2:" << str2.value() << std::endl;
auto str3 = redis.get("key3");
if(str3) std::cout << "key3:" << str3.value() << std::endl;
auto str4 = redis.get("key4");
if(str4) std::cout << "key4:" << str4.value() << std::endl;
}
void test2(sw::redis::Redis& redis)
{
std::cout << "exists 的使用:" << std::endl;
redis.flushall();
redis.set("key1", "111");
redis.set("key2", "222");
auto num = redis.exists({"key1", "key2", "key3"});
std::cout << num << std::endl;
}
void test3(sw::redis::Redis& redis)
{
std::cout << "del 的使用:" << std::endl;
redis.flushall();
redis.set("key1", "111");
redis.set("key2", "222");
std::cout << redis.exists({"key1", "key2"}) << std::endl;
redis.del({"key1"});
std::cout << redis.exists({"key1", "key2"}) << std::endl;
}
void test4(sw::redis::Redis& redis)
{
std::cout << "keys 的使用:" << std::endl;
redis.flushall();
redis.set("key1", "111");
redis.set("key2", "222");
redis.set("key3", "333");
redis.set("key4", "444");
redis.set("key5", "555");
std::vector<std::string> v;
auto it = std::back_insert_iterator(v);
redis.keys("*", it);
print(v);
}
void test5(sw::redis::Redis& redis)
{
using namespace std::chrono_literals;
std::cout << "expire 的使用:" << std::endl;
redis.flushall();
// redis.set("key", "111", std::chrono::seconds(10));
redis.set("key", "111", 10s);
std::this_thread::sleep_for(3s);
std::cout << redis.ttl("key") << std::endl;
}
void test6(sw::redis::Redis& redis)
{
std::cout << "type 的使用:" << std::endl;
redis.flushall();
redis.set("key1", "111");
std::cout << redis.type("key1") << std::endl;
redis.lpush("key2", "111");
std::cout << redis.type("key2") << std::endl;
redis.hset("key3", "key", "111");
std::cout << redis.type("key3") << std::endl;
redis.sadd("key4", "11111");
std::cout << redis.type("key4") << std::endl;
redis.zadd("key5", "吕布", 99);
std::cout << redis.type("key5") << std::endl;
}
int main()
{
sw::redis::Redis redis("tcp://127.0.0.1:6379");
// test1(redis);
// test2(redis);
// test3(redis);
// test4(redis);
// test5(redis);
test6(redis);
return 0;
}
get和set部分
代码中的test1单元测试部分,输出结果: