Set
基本操作
(1)添加数据 sadd key member1 member2…
(2)获取全部数据 smembers key
(3)删除数据
srem key member1 member2…
(4) 获取集合数据总量scard key
(5)判断集合中是否包含指定数据 sismember key member
(6)获取全部数据 smembers key
(7) 求两个集合的交,并,差集 sinter key1 key2
sunion key1 key2
sdiff key1 kry2
(8)求两个集合的交,并,差集并存储到指定集合中
sinterstore destionation key1 key2
sunionstore destionation key1 key2
sdiffstore destionation kry1 key2
(9)把指定数据从原始集合中移动到目标集合中 smove source destionation member
应用场景实例:
1.随机推送内容,增加用户留存度
将用户已经很感兴趣的方面抽走,之后推送用户未曾关注方面的热点信息,大体结构如下:
sadd news n1
sadd news n2
sadd news n3
sadd news n4
spop news 2
srandmember news 2
2.一个用户有多个角色,每个角色又有多种权限,查询某用户的所有权限,判断该用户是否享有该权限。
大体结构如下:
//添加角色权限信息
sadd rid:001 insert
sadd rid:001 update
sadd rid:002 getall
sadd rid:002 insert
sadd rid:002 delete
//将某用户的所有角色操作进行合并
sunionstore user:001 rid:001 rid:002
//查看某用户是否具有该项操作权限
smembers user:001
sismember user:001 insert
3.记录网站的访问量PV,独立访问UV,独立IP
PV:网站被访问次数,可通过刷新页面提高
UV:网站被不同用户访问,课通过cookie统计访问量,相同用户切换IP地址不变
IP:网站被不同IP地址访问的总次数,可通过IP地址统计访问量,相同IP不同用户访问,IP不变
PV可以直接通过String的incr进行实现
UV大体结构如下:
sadd cookie 4444
sadd cookie 4445
sadd cookie 4446
scard cookie
IP大体结构如下:
sadd ips 1.2.3.4
sadd ips 2.3.3.4
sadd ips 2.36.58.1
scard ips