set 是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合
求交并差等操作,操作中key理解为集合的名字。
Redis的set是string类型的无序集合。set元素最大可以包含(2的32次方)个元素。
set的是通过hash table实现的,所以添加、删除和查找的复杂度都是O(1)。hash table会随
着添加或者删除自动的调整大小。需要注意的是调整hash table大小时候需要同步(获取写
锁)会阻塞其他读写操作,可能不久后就会改用跳表(skip list)来实现,跳表已经在sorted
set 中使用了。关于set 集合类型除了基本的添加删除操作,其他有用的操作还包含集合的
取并集(union),交集(intersection),差集(difference)。通过这些操作可以很容易的实现sns
中的好友推荐和blog的tag功能。
redis 127.0.0.1:6379> sadd myset hello 往set中添加元素
(integer) 1
redis 127.0.0.1:6379> sadd myset world
(integer) 1
redis 127.0.0.1:6379> sadd myset hello
(integer) 0
redis 127.0.0.1:6379> smembers myset 列出set中所有的元素
1) "world"
2) "hello"
redis 127.0.0.1:6379> srem myset hello 删除指定set中指定元素
(integer) 1
redis 127.0.0.1:6379> smembers myset
1) "world"
redis 127.0.0.1:6379> sadd myset1 one
(integer) 1
redis 127.0.0.1:6379> sadd myset1 two
(integer) 1
redis 127.0.0.1:6379> sadd myset1 three
(integer) 1
redis 127.0.0.1:6379> spop myset1 随机删除set中指定元素
"three"
redis 127.0.0.1:6379> smembers myset1
1) "two"
2) "one"
redis 127.0.0.1:6379> sadd myset2 one
(integer) 1
redis 127.0.0.1:6379> sadd muset2 four
(integer) 1
redis 127.0.0.1:6379> sadd myset2 four
(integer) 1
redis 127.0.0.1:6379> smembers myset2
1) "four"
2) "one"
redis 127.0.0.1:6379> sdiff myset1 myset2 返回2个集合差集的第一个元素
1) "two"
redis 127.0.0.1:6379> sdiff myset2 myset1
1) "four"
redis 127.0.0.1:6379> sdiffstore myset1 myset2 myset3 将2个集合的差集存到指定集合中
(integer) 2
redis 127.0.0.1:6379> smembers myset3
(empty list or set)
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "one"
redis 127.0.0.1:6379> smembers myset2
1) "four"
2) "one"
redis 127.0.0.1:6379> sadd myset1 three
(integer) 1
redis 127.0.0.1:6379> smembers myset1
1) "three"
2) "four"
3) "one"
redis 127.0.0.1:6379> sinter myset1 myset2 获得2个集合的交集
1) "four"
2) "one"
redis 127.0.0.1:6379> sinterstore myset3 myset1 myset2 将2个集合的交集存入到第三个集合中
(integer) 2
redis 127.0.0.1:6379> smembers myset3
1) "four"
2) "one"
redis 127.0.0.1:6379> smembers myset1
1) "three"
2) "four"
3) "one"
redis 127.0.0.1:6379> sadd myset1 pengdi
(integer) 1
redis 127.0.0.1:6379> smembers myset1
1) "pengdi"
2) "three"
3) "four"
4) "one"
redis 127.0.0.1:6379> smembers myset2
1) "four"
2) "one"
redis 127.0.0.1:6379> sadd myset2 jenny
(integer) 1
redis 127.0.0.1:6379> smembers myset2
1) "jenny"
2) "four"
3) "one"
redis 127.0.0.1:6379> sunion myset2 myset1 获得2个集合的并集
1) "pengdi"
2) "three"
3) "four"
4) "jenny"
5) "one"
redis 127.0.0.1:6379> sunionstore myset3 myset1 myset2 将2个集合的并集存入到指定的集合中
(integer) 5
redis 127.0.0.1:6379> smembers myset3
1) "pengdi"
2) "jenny"
3) "four"
4) "three"
5) "one"
redis 127.0.0.1:6379> smove myset3 myset4 one 将集合myset3中的one元素删除并存入到myset4中
(integer) 1
redis 127.0.0.1:6379> smembers myset4
1) "one"
redis 127.0.0.1:6379> sismember myset4 two 测试集合中指定元素是否存在
(integer) 0
redis 127.0.0.1:6379> sismember myset4 one
(integer) 1
redis 127.0.0.1:6379> srandmember myset2 随机获取集合中的一个元素
"four"
分享到:
相关推荐
Redis学习手册 Key操作命令 doc Redis学习手册 List数据类型 doc Redis学习手册 Set数据类型 doc Redis学习手册 Sorted Sets数据类型 doc Redis学习手册 String数据类型 doc Redis学习手册 主从复制 doc Redis学习...
支持多种数据类型的操作,包括字符串(Strings)、哈希表(Hashes)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)等 执行Lua脚本以及监控Redis的性能 导出和导入Redis的数据 多数据库切换与浏览 实时更新...
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多...
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多...
Redis的键值可以包括字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行附加操作(append);递增...
Redis通常被称为数据结构服务器,因为值(value)可以是 字符串(String)、哈希(Map)、列表(list)、集合(sets)、有序集合(sorted sets)等类型。 Redis是一个key-value存储系统,它支持丰富的数据类型,这些数据类型...
redis是一个key-value存储系统。和Memcached类似,它支持...redis的几种使用方式 Strings、Hashs、Lists、Sets、Sorted Sets、Pub/Sub、Transactions redis是NoSQL的一个代表作. 在少量数据存储,高速读写访问有优势.
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。...
redis可视化工具、中文版、完全...丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志...Redis支持诸如列表、集合或有序集合的交集、并集、查集等高级原子操作;同时,如果键值的类型是普通数字,Redis则提供自增等原子操作。
1 Redis安装、命令行及开发 ...Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets)等数据类型。对于这些数据类型,你可以执行原子操作。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希...
Redis的键值可以包括字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行附加操作(append);递增...
Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行附加操作...
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多...
redis 是完全开源免费的,遵守...丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作redis客户端连接工具主要用于连接redis数据库,查看以及操作redis服务器的数据。
虽然Redis已经很火了,相信还是有很多同学对...Redis提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes ,当然还有和Memcached一样的 strings结构.Redis当然还包括了对这些数据结构的丰富操作。
(2)丰富的数据类型 – Redis 支持二进制案例的 Strings, Lists, Hashes, Sets 及Ordered Sets 数据类型操作。 (3)原子 – Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是...
2. **数据类型**:了解Redis支持的数据类型,如字符串(Strings)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)、哈希表(Hashes)等。每种数据类型都有其特定的用途和操作方式。 3. **命令**:学习Redis...
Redis是一款开源的、高性能的...Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作