【redis教程】5、redis支持的五种数据类型之Set
redis支持的set数据类型与hash存储结构完全一致,不过set仅存储键,不存键值(nil),重要的特点就是存储的值是不重复的。
set类型数据的基本操作
添加数据sadd key member1 [member2]
获取全部数据smembers key
删除数据srem key member1 [member2]
set类型数据的扩展操作
随机获取集合中的数据srandmember key [count]
随机删除spop key
两个集合的交集、并集、差集sinter key1 [key2]
sunion key1 [key2]
sdiff key1 [key2]
求两个集合的交、并、差集并存储到指定集合中sinterstore 目标集合 key1 key2
set类型数据的应用场景
实现权限校验
-
业务场景
-
解决方案
利用set集合的不重复性,获取用户所有的角色以及所有的权限。
比如说id为001的用户有role1和role2两种角色,通过求交集就可以知道这种角色共同的操作权限,求并集可以知道所有的操作权限。
上面求的是交集,下面求并集就可以得到用户所有的权限:
到这里我就可以把权限数据提供给调用者,让调用者在业务层中去校验权限。