Redis Set 基础与 C++ 实战
Redis Set 是一种无序且元素唯一的字符串集合数据结构。本文基于 C++ redis-plus-plus 库演示了 Set 的核心操作与高级应用。
Redis Set 概念
想象一个魔力袋,你可以往里面扔东西,但有两条特殊规则:
- 强制保持唯一:自动拒绝重复的物品。
- 顺序毫不在意:取出的顺序是随机的。
这个'魔力袋'正是 Redis Set 的精准比喻:一个无序的、元素唯一的字符串集合。这使得它能够以惊人的速度进行成员资格检查、数量统计以及复杂的服务器端运算。
第一章:基础入门 - 创建和查看你的第一个 Set
使用 SADD 和 SMEMBERS 命令。
SADD:向集合中添加成员
SADD 用于添加一个或多个元素。如果元素已存在,Redis 会忽略它。返回值是新成功添加的元素数量。
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 {
std::cout << << 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);
}


