`
bigboy
  • 浏览: 167877 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Redis sets操作

 
阅读更多

 

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学习资料

    Redis学习手册 Key操作命令 doc Redis学习手册 List数据类型 doc Redis学习手册 Set数据类型 doc Redis学习手册 Sorted Sets数据类型 doc Redis学习手册 String数据类型 doc Redis学习手册 主从复制 doc Redis学习...

    redis桌面链接工具redis-desktop

    支持多种数据类型的操作,包括字符串(Strings)、哈希表(Hashes)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)等 执行Lua脚本以及监控Redis的性能 导出和导入Redis的数据 多数据库切换与浏览 实时更新...

    Redis-7.0.12-Windows-x64

    丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多...

    redis安装包3.0

    丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多...

    分布式缓存技术Redis在C#中的使用

    Redis的键值可以包括字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行附加操作(append);递增...

    Redis面试题.pdf

    Redis通常被称为数据结构服务器,因为值(value)可以是 字符串(String)、哈希(Map)、列表(list)、集合(sets)、有序集合(sorted sets)等类型。 Redis是一个key-value存储系统,它支持丰富的数据类型,这些数据类型...

    redis-2.2.2 (源码)

    redis是一个key-value存储系统。和Memcached类似,它支持...redis的几种使用方式 Strings、Hashs、Lists、Sets、Sorted Sets、Pub/Sub、Transactions redis是NoSQL的一个代表作. 在少量数据存储,高速读写访问有优势.

    redis-5.0.5.tar.gz

    丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。...

    redis可视化工具、免费.中文

    redis可视化工具、中文版、完全...丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

    redis-2.4.7

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志...Redis支持诸如列表、集合或有序集合的交集、并集、查集等高级原子操作;同时,如果键值的类型是普通数字,Redis则提供自增等原子操作。

    java大数据内容_8Redis、Thrift、Hadoop2

    1 Redis安装、命令行及开发 ...Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets)等数据类型。对于这些数据类型,你可以执行原子操作。

    Redis 教程基本操作实战练习,狂神

    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希...

    Redis在C#中的使用

    Redis的键值可以包括字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行附加操作(append);递增...

    redis基础资料

    Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行附加操作...

    redis可视化工具安装包.7z

    丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多...

    redis客户端-csdn下载

    redis 是完全开源免费的,遵守...丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作redis客户端连接工具主要用于连接redis数据库,查看以及操作redis服务器的数据。

    Redis系统性介绍.docx

    虽然Redis已经很火了,相信还是有很多同学对...Redis提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes ,当然还有和Memcached一样的 strings结构.Redis当然还包括了对这些数据结构的丰富操作。

    redis常问面试题汇总

    (2)丰富的数据类型 – Redis 支持二进制案例的 Strings, Lists, Hashes, Sets 及Ordered Sets 数据类型操作。 (3)原子 – Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是...

    Redis开发的教程.doc

    2. **数据类型**:了解Redis支持的数据类型,如字符串(Strings)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)、哈希表(Hashes)等。每种数据类型都有其特定的用途和操作方式。 3. **命令**:学习Redis...

    redis数据结构服务器

    Redis是一款开源的、高性能的...Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作

Global site tag (gtag.js) - Google Analytics