【Redis】Redis 集合 Set 操作 ( Set 集合数据 | 您所在的位置:网站首页 › Redis中increase › 【Redis】Redis 集合 Set 操作 ( Set 集合数据 |
文章目录一、Set 集合数据二、查询操作1、获取集合的所有值2、判断键是否包含值3、获取集合元素个数4、随机获取若干元素5、获取两个集合的交集6、获取两个集合的并集7、获取两个集合的差集三、增操作1、插入值四、删操作1、删除元素2、删除列表指定个数的指定值五、修改操作1、Set 集合之间移动值一、Set 集合数据 Redis 的 Set 集合数据 , 与 List 列表功能相似 , 唯一的区别是 Set 集合中的元素 是 不允许重复的 ; 该 Set 集合 是一个 无序集合 , 存储 String 类型数据 ; Set 集合底层是由 Hash 表实现 的 , 本质是 字典结构 , 其 添加 , 删除 , 查找 元素的 时间复杂度 是 O(1) ; Java 的 HashSet 集合 内部由 HashMap 实现 , 所有的 值 Value 都指向同一个实例对象 ; Redis 的 Set 集合 内部也是由 Hash 实现 , 所有的 值 Value 都指向同一个值 ; 二、查询操作1、获取集合的所有值执行 smembers key命令 , 可以 获取 集合的 所有值 ; 代码示例 : 127.0.0.1:6379> sadd name Tom Jerry Jack (integer) 3 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Tom" 3) "Jack" 127.0.0.1:6379>2、判断键是否包含值执行 sismember key value命令 , 可以 判断 key 键中 是否存在 value 值 ; 代码示例 : 查询 Tom 存在 返回 1 , 查询 Bill 不存在 返回 0 ; 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Tom" 3) "Jack" 127.0.0.1:6379> sismember name Tom (integer) 1 127.0.0.1:6379> sismember name Bill (integer) 0 127.0.0.1:6379>3、获取集合元素个数执行 scard key命令 , 可以 获取集合元素个数 ; 代码示例 : 获取集合的元素个数为 3 ; 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Tom" 3) "Jack" 127.0.0.1:6379> sismember name Tom (integer) 1 127.0.0.1:6379> sismember name Bill (integer) 0 127.0.0.1:6379> scard name (integer) 3 127.0.0.1:6379>4、随机获取若干元素执行 srandmember key n命令 , 可以 从 Set 集合中 随机获取 n 个元素 代码示例 : 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Tom" 3) "Jack" 127.0.0.1:6379> srandmember name 2 1) "Jerry" 2) "Jack" 127.0.0.1:6379> srandmember name 2 1) "Jerry" 2) "Jack" 127.0.0.1:6379>5、获取两个集合的交集执行 sinter key1 key2命令 , 可以 获取两个集合的交集 ; 代码示例 : 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Tom" 3) "Jack" 127.0.0.1:6379> smembers age 1) "Tom" 2) "22" 3) "18" 4) "16" 127.0.0.1:6379> sinter name age 1) "Tom" 127.0.0.1:6379>6、获取两个集合的并集执行 sunion key1 key2命令 , 可以 获取两个集合的并集 ; 代码示例 : 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Tom" 3) "Jack" 127.0.0.1:6379> smembers age 1) "Tom" 2) "22" 3) "18" 4) "16" 127.0.0.1:6379> sinter name age 1) "Tom" 127.0.0.1:6379> sunion name age 1) "22" 2) "Tom" 3) "Jack" 4) "16" 5) "Jerry" 6) "18" 127.0.0.1:6379>7、获取两个集合的差集执行 sdiff key1 key2命令 , 可以 获取两个集合的差集 , 在 key1 中存在 , key2 中不存在的 ; 代码示例 : 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Tom" 3) "Jack" 127.0.0.1:6379> smembers age 1) "Tom" 2) "22" 3) "18" 4) "16" 127.0.0.1:6379> sinter name age 1) "Tom" 127.0.0.1:6379> sunion name age 1) "22" 2) "Tom" 3) "Jack" 4) "16" 5) "Jerry" 6) "18" 127.0.0.1:6379> sdiff name age 1) "Jerry" 2) "Jack" 127.0.0.1:6379>三、增操作1、插入值执行 sadd key value1 value2 ...命令 , 向 key 键存储多个值 ; 如果插入重复的元素 , 重复的元素会被忽略 , 其它没有重复的元素则成功插入 ; 代码示例 : 127.0.0.1:6379> sadd name Tom Jerry Jack (integer) 3 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Tom" 3) "Jack" 127.0.0.1:6379>四、删操作1、删除元素执行 srem key value1 value2命令 , 可以 删除 集合 中的某些元素 ; 代码示例 : 删除集合中的 2 个元素 ; 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Tom" 3) "Jack" 127.0.0.1:6379> srem name Tom Jerry (integer) 2 127.0.0.1:6379> smembers name 1) "Jack" 127.0.0.1:6379>2、删除列表指定个数的指定值执行 spop key命令 , 可以 随机从集合中获取某个值 , 该值会在集合中删除 ; 代码示例 : 127.0.0.1:6379> sadd name Tom Jerry Jack (integer) 2 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Tom" 3) "Jack" 127.0.0.1:6379> spop name "Tom" 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Jack" 127.0.0.1:6379>五、修改操作1、Set 集合之间移动值执行 smove key1 key2 value命令 , 可以 将 key1 集合的 value 值 移动到 key2 集合 ; 代码示例 : 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Tom" 3) "Jack" 127.0.0.1:6379> smembers age 1) "16" 2) "18" 3) "22" 127.0.0.1:6379> smove name age Tom (integer) 1 127.0.0.1:6379> smembers name 1) "Jerry" 2) "Jack" 127.0.0.1:6379> smembers age 1) "Tom" 2) "22" 3) "18" 4) "16" 127.0.0.1:6379> |
CopyRight 2018-2019 实验室设备网 版权所有 |