您的位置:首页 > 数据库 > Redis

redis 的使用 ( set集合类型操作)

2016-04-28 22:59 609 查看
set 集合类型

释义:

redis 的 set 是 string 类型的无序集合

set 元素最大可以包含(2的32次方-1)个元素

关于 set 集合类型除了基本的添加删除操作 其他有用的操作还包含集合的

并集(union),交集(intersection),差集(difference).

通过这些操作实现SNS中的 好友推荐功能

注意:

每个集合中的各个元素不能重复

应用场合:

QQ好友的推荐

set 类型操作:

sadd key member

添加一个 string 元素到 key 对应的 set 集合中 成功返回 1 如果元素在集合中 返回0 若 key 对应的 set 集合不存在 返回错误

srem key member[member]

从 key 对应的 set 中移除给定的元素 成功返回 1

smove p1 p2 member

从 p1 对应 set 中移除 member 并添加到 p2 对应 set 中

scard key

返回 set 中元素的个数

sismember key member

判断 member 是否在 set 中

sinter key1 key2... keyN

返回所有给定 key 的交集

sunion key1 key2... keyN

返回所有给定 key 的并集

sdiff key1 key2... keyN

返回所有给定 key 的差集( 只有 key1 的 没有 key2 的)

smembers key

返回 key 对应 set 的所有元素 结果是无序的

eg:

laowen10 朋友圈 laowen20 朋友圈
公共朋友
laowen 11 laowen21

laowen 12 laowen01 laowen22

laowen 13 laowen02 laowen23

// 生成 laowen10 的朋友圈 的 set 集合

sadd laowen10 laowen11 // OK 表示添加OK

sadd laowen10 laowen12 // OK 表示添加OK

sadd laowen10 laowen13 // OK 表示添加OK

sadd laowen10 laowen01 // OK 表示添加OK

sadd laowen10 laowen02 // OK 表示添加OK

// 生成 laowen20 的朋友圈 的 set 集合

sadd laowen20 laowen21 // OK 表示添加OK

sadd laowen20 laowen22 // OK 表示添加OK

sadd laowen20 laowen23 // OK 表示添加OK

sadd laowen20 laowen01 // OK 表示添加OK

sadd laowen20 laowen02 // OK 表示添加OK

// 交集 获取到交集

sinter laowen10 laowen20

// 返回交集结果

// 1) "laowen01"

// 2) "laowen02"

// 并集 获取到并集

sunion laowen10 laowen20

// 返回并集结果

// 1) "laowen11"

// 2) "laowen12"

// 3) "laowen13"

// 4) "laowen21"

// 5) "laowen22"

// 6) "laowen23"

// 7) "laowen01"

// 8) "laowen02"

// 差集 获取到差集

sdiff laowen10 laowen20

// laowen10 与 laowen20 比较 返回只属于 laowen10 的集合

// 1) "laowen11"

// 2) "laowen12"

// 3) "laowen13"

sdiff laowen20 laowen10

// laowen20 与 laowen10 比较 返回只属于 laowen20 的集合

// 1) "laowen21"

// 2) "laowen22"

// 3) "laowen23"

// 获取给定元素的集合

smembers laowen10

// 获取到 laowen10 的 set 集合

// 1) "laowen11"

// 2) "laowen12"

// 3) "laowen13"

// 4) "laowen01"

// 5) "laowen02"

// 判断是否存在在对应的集合中

sismember laowen10 laowen11

// (integer) 1 // 说明 laowen11 在 laowen10 的 set 集合中

sismember laowen10 laowen21

// (integer) 0 // 说明 laowen21 不在 laowen10 的 set 集合中

// 获取到 key 对应的 set 集合中的元素的个数

scard laowen10

// (integer) 5 // 说明 有5个元素

// 移动元素

smove laowen10 laowen20 laowen11

// (integer) 1 // 将 laowen10 集合里面的元素 laowen11 移动到 laowen20 集合下

// 删除元素

srem laowen20 laowen11

// (integer) 1 // 将 laowen20 集合里面的元素 laowen11 删除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: