

添加元素:SADD key member1 [member2 ...],将一个或多个元素添加到集合中。 移除元素:SREM key member1 [member2 ...],移除集合中的一个或多个元素。 检查元素是否存在:SISMEMBER key member,检查元素是否存在于集合中。 获取集合大小:SCARD key,获取集合中元素的数量。 获取集合所有元素:SMEMBERS key,获取集合中的所有元素。 随机获取元素:SRANDMEMBER key [count],随机获取一个或多个元素。
过期时间:可以为 Set 设置过期时间,使其在指定时间后自动删除。 事务支持:通过 MULTI 和 EXEC 命令,可以将多个操作打包成一个事务执行。 持久化:Redis 支持将 Set 数据持久化到磁盘,确保数据不会因服务器重启而丢失。
交集:找出两个或更多 Set 共有的元素。
SINTER set1 set2
并集:合并两个或更多 Set 中的所有元素。
SUNION set1 set2
差集:从一个 Set 中移除另一个 Set 包含的所有元素。
SDIFF set1 set2
# 随机返回2个成员SRANDMEMBER myset 2
SMOVE source destination member


# 添加元素到集合SADD user:1000:follows 1001 1002 1003# 检查元素是否存在SISMEMBER user:1000:follows 1001
# 添加用户到排行榜SADD leaderboard 1000 1001 1002# 获取排行榜中的所有用户SMEMBERS leaderboard
# 添加权限到集合SADD user:1000:permissions "read" "write" "delete"# 检查权限是否存在SISMEMBER user:1000:permissions "write"
# 添加标签到集合SADD article:100:tags "technology" "programming" "redis"# 获取所有标签SMEMBERS article:100:tags
5. 抽奖活动
通过 SRANDMEMBER 随机抽取幸运用户,实现公平公正的抽奖机制。
SADD myset user1 user2 user3...# 随机返回2个成员SRANDMEMBER myset 2


# 添加用户的好友列表SADD user:1000:friends alice bob charlie# 查看某用户的好友列表SMEMBERS user:1000:friends# 检查某人是否是用户的好友SISMEMBER user:1000:friends alice# 找出两个用户的共同好友SINTER user:1000:friends user:1001:friends
import redis# 连接 Redisr = redis.Redis(host='localhost', port=6379, db=0)def add_elements(key, *elements):"""添加元素到集合"""r.sadd(key, *elements)print(f"元素已添加到集合: {key}")def remove_elements(key, *elements):"""从集合中移除元素"""r.srem(key, *elements)print(f"元素已从集合中移除: {key}")def check_element(key, element):"""检查元素是否存在"""exists = r.sismember(key, element)print(f"元素 '{element}' 是否存在于集合 '{key}': {exists}")return existsdef get_all_elements(key):"""获取集合中的所有元素"""elements = r.smembers(key)print(f"集合 '{key}' 中的所有元素: {elements}")return elementsdef get_random_elements(key, count=1):"""随机获取集合中的元素"""elements = r.srandmember(key, count)print(f"随机获取集合 '{key}' 中的元素: {elements}")return elements# 示例:添加元素add_elements("user:1000:follows", 1001, 1002, 1003)# 示例:检查元素是否存在check_element("user:1000:follows", 1001)# 示例:获取所有元素get_all_elements("user:1000:follows")# 示例:随机获取元素get_random_elements("user:1000:follows", 2)# 示例:移除元素remove_elements("user:1000:follows", 1002)

文章转载自老王两点中,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




