`

redis 学习笔记3--set

 
阅读更多

 

redis学习笔记3--set

 

list:有序且,允许重复数据的链表 存在POP PUSH的概念

set: 无需序,不能重复的集合 主要是ADD 

sortSet:有序,不能重复的集合 

 

整体结构图:

http://dl.iteye.com/upload/picture/pic/115943/f6e6971a-0216-3fe3-b89c-4ec5b53b762a.jpg

 

 

1.SADD 新增元素

语法: sadd key value 

实践:

redis 127.0.0.1:6379> sadd s1 1

(integer) 1

redis 127.0.0.1:6379> sadd s1 2 

(integer) 1

redis 127.0.0.1:6379> sadd s2 3 

(integer) 1

redis 127.0.0.1:6379> sadd s1 1      // 重复数据不会被添加

(integer) 0

redis 127.0.0.1:6379>

 

2.SREM 删除元素

语法:srem key value 

实践:

redis 127.0.0.1:6379> smembers s1 

1) "1"

2) "2"

redis 127.0.0.1:6379> srem s1 1       // 删除s1中的1元素

(integer) 1

redis 127.0.0.1:6379> smembers s1 

1) "2"

redis 127.0.0.1:6379> 

 

3.SMEMBERS 列出所有信息 类似list的 lrange

语法:smembers key 

实践:

redis 127.0.0.1:6379> smembers s1 

1) "2"

redis 127.0.0.1:6379> 

 

 

4.SISMEMBER 判断是否存在该元素

语法:sismember key value 

1:存在该元素

0:不存在

 

实践:

redis 127.0.0.1:6379> sismember s1 1   存在的元素返回1

(integer) 1

redis 127.0.0.1:6379> sismember s1 3   不存在的元素返回0

(integer) 0

redis 127.0.0.1:6379>

 

5.SCARD 计算集合中元素总数 size

语法:scard key 

实践:

redis 127.0.0.1:6379> scard s1     // 返回集合中元素个数

(integer) 2

redis 127.0.0.1:6379> 

 

6.SMOVE 将集合中一个元素转移到另一个集合中

语法: smove  source destination value 

实践:

redis 127.0.0.1:6379> smembers s1 

1) "1"

2) "2"

redis 127.0.0.1:6379> smembers s2

(empty list or set)

redis 127.0.0.1:6379> smove s1 s2 1    // 将S1中的1移动到了S2中

(integer) 1

redis 127.0.0.1:6379> smembers s1 

1) "2"

redis 127.0.0.1:6379> smembers s2

1) "1"

redis 127.0.0.1:6379>

 

7.SPOP 随机弹出一个元素

语法: spop key 

实践:

redis 127.0.0.1:6379> smembers s1 

1) "1"

2) "2"

3) "3"

4) "4"

redis 127.0.0.1:6379> spop s1           // 随机弹出一个元素

"3"

redis 127.0.0.1:6379> smembers s1 

1) "1"

2) "2"

3) "4"

redis 127.0.0.1:6379> 

 

8.SRANDMEMBER 随机获取一个元素,但是不弹出集合,这个是跟SPOP唯一的区别

语法: SRANDMEMBER

实践:

redis 127.0.0.1:6379> smembers s1 

1) "1"

2) "2"

3) "4"

redis 127.0.0.1:6379> SRANDMEMBER s1   //  随机取得一个数据,但是元素不会丢失

"4"

redis 127.0.0.1:6379> smembers s1 

1) "1"

2) "2"

3) "4"

redis 127.0.0.1:6379>

 

9.SINTER 取两个集合的交集

语法:SINTER key1 key2 

实践:

redis 127.0.0.1:6379> smembers s2 

1) "1"

2) "10"

redis 127.0.0.1:6379> smembers s1 

1) "1"

2) "2"

3) "4"

redis 127.0.0.1:6379> sinter s1 s2    // 两个集合共同的元素是 1 

1) "1"

redis 127.0.0.1:6379>

 

10.SINTERSTORE 取两个集合的交集并保存到另一个集合中 

语法:SINTERSTORE destination key1 key2 

实践:

redis 127.0.0.1:6379> smembers s1

1) "1"

2) "2"

3) "3"

redis 127.0.0.1:6379> smembers s2

1) "1"

2) "10"

redis 127.0.0.1:6379> smembers s3                 //这个时候S3是空的

(empty list or set)

redis 127.0.0.1:6379> sinterstore s3  s1 s2       //取两个的交集并保存到s3 中

(integer) 1

redis 127.0.0.1:6379> smembers s3

1) "1"

redis 127.0.0.1:6379>

 

11.SUNION  取两个集合的并集 

语法:SUNION key1 key2 

实践:

redis 127.0.0.1:6379> smembers s1

1) "1"

2) "2"

3) "3"

redis 127.0.0.1:6379> smembers s2

1) "1"

2) "10"

redis 127.0.0.1:6379> sunion s1 s2              // 取得两个集合的并集

1) "1"

2) "2"

3) "3"

4) "10"

redis 127.0.0.1:6379> 

 

12.SUNIONSTORE 取两个集合的并集并保存到另一个集合中 

语法: SUNIONSTORE destination key1 key2  

实践:

redis 127.0.0.1:6379> smembers s1

1) "1"

2) "2"

3) "3"

redis 127.0.0.1:6379> smembers s2

1) "1"

2) "10"

redis 127.0.0.1:6379> sunionstore  s4 s1 s2 

(integer) 4

redis 127.0.0.1:6379> smembers s4

1) "1"

2) "2"

3) "3"

4) "10"

redis 127.0.0.1:6379> 

 

13.SDIFF 取两个集合的差集

语法:SDIFF key1 key2

实践:

redis 127.0.0.1:6379> smembers s1

1) "1"

2) "2"

3) "3"

redis 127.0.0.1:6379> smembers s2

1) "1"

2) "10"

redis 127.0.0.1:6379> sdiff s1 s2    // 获取的是两个之间的差集

1) "2"

2) "3"

redis 127.0.0.1:6379> 

 

14.SDIFFSTORE 取两个集合的差集 并保存到第三个集合中

语法:SDIFFSTORE key1 key2 diffSet

实践:

redis 127.0.0.1:6379> smembers s1

1) "1"

2) "2"

3) "3"

redis 127.0.0.1:6379> smembers s2

1) "1"

2) "10"

redis 127.0.0.1:6379> sdiffstore s5  s1 s2    // 将差集的数据保存到s5中 

(integer) 2

redis 127.0.0.1:6379> smembers s5

1) "2"

2) "3"


分享到:
评论

相关推荐

    Redis全套学习笔记-带章节目录-114页.pdf

    Redis全套学习笔记 Redis是一种基于内存的NoSQL数据库,具有高性能、可扩展性和灵活性等特点。以下是Redis的详细知识点: 安装和启动 * 安装Redis可以通过下载软件包或使用yum、apt-get等安装工具进行安装。 * ...

    Redis学习笔记-包括周阳和狂神说

    在本“Redis学习笔记-包括周阳和狂神说”中,我们将深入探讨Redis的核心概念、功能特性以及实际应用。 1. Redis基本概念 - 键值对:Redis的核心数据结构,键是唯一的标识,值可以是多种类型,如字符串、哈希、列表...

    redis学习笔记

    redis学习笔记redis 是一个开源的 key-value 数据库。它又经常被认为是一个数据结构服务器。 因为它的 value 不仅包括基本的 string 类型还有 list,set ,sorted set 和 hash 类型。当 然这些类型的元素也都是 string...

    超详细的redis学习笔记

    ### 超详细的Redis学习笔记知识点汇总 #### 1. Redis 的启动与停止 ##### 1.1 直接启动 Redis 服务 - **默认端口启动**:使用 `$ redis-server` 命令,默认监听端口为 `6379`。 - **指定端口启动**:使用 `$ ...

    Redis学习笔记.pdf

    Redis作为一款高性能的键值存储数据库,支持多种数据类型,包括String、List、Set、ZSet和Hash,并且提供了数据持久化的机制,包括快照(Snapshot)和AOF(Append Only File)两种方式。在Java操作方面,可以利用...

    redis学习笔记Redis.md

    ### Redis 学习笔记知识点概览 #### 一、Redis 概述与应用场景 ##### 1.1 NoSQL 数据库简介 - **定义**: NoSQL(Not Only SQL)泛指非关系型数据库,它们通常不使用传统的表格关系来存储数据。 - **特性**: NoSQL ...

    redis学习笔记.zip

    这个“redis学习笔记.zip”压缩包很可能是包含了关于Redis的学习资料,可能包括概念解释、操作教程、实践案例等内容,适合初学者和有一定基础的学习者参考。 Redis的学习可以分为以下几个主要部分: 1. **基础知识...

    redis学习笔记.docx

    Redis学习笔记 Redis是基于键值对存储的NoSQL数据库,可以用来存储和检索数据。下面是Redis的基础知识点: 基础命令 * set key value:保存一个数据,重复set相同的key只会保存最新的value * get key:获取一个...

    Redis全套学习笔记

    它支持多种数据结构,包括字符串(String)、链表(List)、哈希(Hash)、集合(Set)和有序集合(Zset),这些丰富的数据结构使得Redis在缓存、计数、发布订阅系统等多种场景下表现出色。 1. Redis 概述与安装: Redis ...

    redis学习笔记+练习springboot-redisdemo

    本资源包包含了关于Redis的学习笔记以及一个基于SpringBoot整合Redis的实战项目——"springboot-redisdemo",旨在帮助你深入理解和应用Redis。 首先,让我们详细探讨Redis的核心知识点: 1. **Redis的数据类型**:...

    Redis全套学习笔记 完整版pdf.rar

    Redis全套学习笔记 完整版pdf.rar set:添加键值对 get:获取值 apend:追价值 strlen:获取值的长度 setnx:key不存在时,设置key的值 incr:原子递增1 decr:原子递减1 incrby/decrby:递增或者递减指定的数字 ...

    redis笔记.rar

    这份"redis笔记.rar"包含的"redis笔记.pdf"应该是一份详细的学习指南,非常适合初学者了解和掌握Redis的基本概念、操作命令以及实战技巧。 1. Redis基本概念: - Redis是一个开源的、基于内存的数据存储系统,支持...

    redis学习笔记。

    这只是 Redis 学习的基础,深入使用还需要掌握更多的高级特性和最佳实践,例如集群搭建、主从复制、Lua 脚本、Pipeline 使用等。随着对 Redis 的了解加深,你可以将其应用到更复杂的系统设计中,优化性能和提高系统...

    redis的学习笔记 redis.pdf

    在本次学习笔记中,主要介绍了String类型的命令。String是最基本的类型,可以存储任何形式的数据,如二进制数据、数字或字符串。在String类型中,可以使用set命令设置值,使用get命令获取值,append命令用于追加字符...

    7.Redis学习笔记.pdf

    Redis不仅支持基本的键值对存储,还支持多种数据结构,包括字符串(strings)、散列(hash)、列表(list)、集合(set)、有序集合(sorted set)以及范围查询、位图(bitmaps)、超日志(hyperloglogs)和地理空间索引...

    redis基本命令paper-mas开发笔记

    在“redis基本命令paper-mas开发笔记”中,我们将会探讨Redis的一些核心概念和常用命令,帮助你更好地理解和运用这个强大的工具。 1. **Redis的数据类型**: - **String**:基础类型,可以存储字符串、数字等,如`...

    Java Redis 学习笔记 Markdown+PDF 格式分享

    通过这份Java Redis学习笔记,开发者可以深入了解如何在Springboot项目中高效地利用Redis进行数据存储和处理,提升系统的响应速度和稳定性。同时,配合Markdown格式,便于阅读和整理笔记,而PDF格式则方便离线查阅和...

Global site tag (gtag.js) - Google Analytics