Redis C++客户端——命令使用
目录
代码案例:
运行结果:
代码案例:
运行结果:
代码案例:
运行结果:
使用了什么命令在每个单元测试函数中都有提示,下面直接展示。
代码案例:
#include <sw/redis++/redis++.h>
#include <iostream>
#include <vector>
#include <thread>
#include "utils.hpp"void test1(sw::redis::Redis& redis)
{using namespace std::chrono_literals;std::cout << "set NX 和 XX:" << std::endl;redis.set("key1", "111");std::cout << redis.get("key1").value() << std::endl;redis.set("key1", "222", 0s, sw::redis::UpdateType::NOT_EXIST);std::cout << redis.get("key1").value() << std::endl;redis.setnx("key1", "333");std::cout << redis.get("key1").value() << std::endl;redis.setex("key1", 10s, "444");std::cout << redis.get("key1").value() << std::endl;
}void test2(sw::redis::Redis& redis)
{std::cout << "mset:" << std::endl;redis.mset({std::make_pair("key1", "111"), std::make_pair("key2", "222"), std::make_pair("key3", "333")});// std::cout << redis.get("key1").value() << std::endl;// std::cout << redis.get("key2").value() << std::endl;// std::cout << redis.get("key3").value() << std::endl;std::vector<sw::redis::OptionalString> result;auto it = std::back_inserter(result);redis.mget({"key1", "key2", "key3", "key4"}, it);print(result);
}void test3(sw::redis::Redis& redis)
{std::cout << "setrange 和 getrange:" << std::endl;redis.flushall();redis.set("key1", "111222333");redis.setrange("key1", 2, "777");std::cout << redis.get("key1").value() << std::endl;std::cout << redis.getrange("key1", 1, 6) << std::endl;
}void test4(sw::redis::Redis& redis)
{std::cout << "incr 和 decr:" << std::endl;redis.flushall();redis.set("key", "100");std::cout << redis.incr("key") << std::endl;std::cout << redis.get("key").value() << std::endl;std::cout << redis.decr("key") << std::endl;std::cout << redis.get("key").value() << std::endl;
}int main()
{sw::redis::Redis redis("tcp://127.0.0.1:6379");test1(redis);test2(redis);test3(redis);test4(redis);return 0;
}
运行结果:
代码案例:
#include <sw/redis++/redis++.h>
#include <string>
#include <vector>
#include <iostream>
#include "utils.hpp"void test1(sw::redis::Redis& redis)
{std::cout << "lpush 和 lrange" << std::endl;redis.flushall();redis.lpush("key", "111");// redis.lpush("key", {"222", "333", "444", "555"});std::vector<std::string> v = {"222", "444", "666"};redis.lpush("key", v.begin(), v.end());std::vector<std::string> result;auto it = std::back_inserter(result);redis.lrange("key", 0, -1, it);print(result);
}void test2(sw::redis::Redis& redis)
{std::cout << "rpush:" << std::endl;redis.flushall();redis.rpush("key", "111");redis.rpush("key", {"222", "333"});std::vector<std::string> v = {"444", "555"};redis.rpush("key", v.begin(), v.end());std::vector<std::string> result;auto it = std::back_inserter(result);redis.lrange("key", 0, -1, it);print(result);
}void test3(sw::redis::Redis& redis)
{std::cout << "lpop 和 rpop:" << std::endl;redis.flushall();redis.rpush("key", "111");redis.rpush("key", {"222", "333"});std::vector<std::string> v = {"444", "555"};redis.rpush("key", v.begin(), v.end());std::vector<std::string> result;auto it = std::back_inserter(result);redis.lrange("key", 0, -1, it);std::cout << redis.lpop("key").value() << std::endl;std::cout << redis.rpop("key").value() << std::endl;
}void test4(sw::redis::Redis& redis)
{std::cout << "blpop:" << std::endl;redis.flushall();auto it = redis.blpop({"key1", "key2"});if(it){// std::cout << "key:" << it->first << std::endl;// std::cout << "value:" << it->second << std::endl;std::cout << "key:" << it.value().first << std::endl;std::cout << "value:" << it.value().second << std::endl;}else std::cout << "无效值" << std::endl;
}void test5(sw::redis::Redis& redis)
{std::cout << "llen:" << std::endl;redis.flushall();redis.lpush("key", {"111", "222", "333"});std::cout << redis.llen("key") << std::endl;
}int main()
{sw::redis::Redis redis("tcp://127.0.0.1:6379");test1(redis);test2(redis);test3(redis);test4(redis);test5(redis);return 0;
}
运行结果:
代码案例:
#include <sw/redis++/redis++.h>
#include <iostream>
#include <vector>
#include <thread>
#include "utils.hpp"
#include <set>void test1(sw::redis::Redis& redis)
{std::cout << "sadd 和 smembers" << std::endl;redis.flushall();redis.sadd("key", "111");redis.sadd("key", {"333", "666", "222"});std::set<std::string> set1({"555", "444"});redis.sadd("key", set1.begin(), set1.end());std::set<std::string> set2;auto it = std::inserter(set2, set2.end());redis.smembers("key", it);print(set2);
}void test2(sw::redis::Redis& redis)
{std::cout << "sismember:" << std::endl;redis.flushall();redis.sadd("key", {"111", "222", "333"});std::cout << redis.sismember("key", "111") << std::endl;std::cout << redis.sismember("key", "666") << std::endl;std::cout << redis.scard("key") << std::endl;std::cout << redis.spop("key").value() << std::endl;
}int main()
{sw::redis::Redis redis("tcp://127.0.0.1:6379");test1(redis);test2(redis);return 0;
}