Redis Set 数据结构与 C++ 实战
Redis Set 是什么?
Redis Set 是一个无序且元素唯一的字符串集合。其核心特性包括:
- 强制保持唯一:自动拒绝重复元素。
- 顺序毫不在意:获取元素时顺序随机。
这一简单的定义使其能够以惊人的速度进行成员资格检查、数量统计以及复杂的服务器端集合运算。
基础入门 - 创建和查看你的第一个 Set
SADD:向集合中添加成员
SADD 是向 Set 中添加一个或多个元素的主要工具。如果某个元素已存在,Redis 会忽略它。返回值是新成功添加的元素数量。
SMEMBERS:获取所有成员
SMEMBERS 返回指定 Set 中的所有成员。注意:在拥有数百万元素的超大 Set 上使用此命令可能会暂时阻塞 Redis 服务器,建议后续使用 SSCAN。
C++ 实战:sadd 与 smembers
#include <iostream>
#include <set>
#include <string>
#include <vector>
#include <iterator>
#include <sw/redis++/redis.h>
// 辅助函数,用于打印容器内容
template<typename T>
void PrintContainer(const T& container) {
for (const auto& elem : container) {
std::cout << elem << " ";
}
std::cout << std::endl;
}
void test1(sw::redis::Redis& redis) {
std::cout << "sadd 和 smembers" << std::endl;
// 清空数据库,确保测试环境纯净
redis.();
redis.(, );
redis.(, {, , });
std::set<std::string> elems = {, , };
redis.(, elems.(), elems.());
std::set<std::string> result;
it = std::(result, result.());
redis.(, it);
(result);
}


