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全套学习笔记 Redis是一种基于内存的NoSQL数据库,具有高性能、可扩展性和灵活性等特点。以下是Redis的详细知识点: 安装和启动 * 安装Redis可以通过下载软件包或使用yum、apt-get等安装工具进行安装。 * ...
在本“Redis学习笔记-包括周阳和狂神说”中,我们将深入探讨Redis的核心概念、功能特性以及实际应用。 1. Redis基本概念 - 键值对:Redis的核心数据结构,键是唯一的标识,值可以是多种类型,如字符串、哈希、列表...
redis学习笔记redis 是一个开源的 key-value 数据库。它又经常被认为是一个数据结构服务器。 因为它的 value 不仅包括基本的 string 类型还有 list,set ,sorted set 和 hash 类型。当 然这些类型的元素也都是 string...
### 超详细的Redis学习笔记知识点汇总 #### 1. Redis 的启动与停止 ##### 1.1 直接启动 Redis 服务 - **默认端口启动**:使用 `$ redis-server` 命令,默认监听端口为 `6379`。 - **指定端口启动**:使用 `$ ...
Redis作为一款高性能的键值存储数据库,支持多种数据类型,包括String、List、Set、ZSet和Hash,并且提供了数据持久化的机制,包括快照(Snapshot)和AOF(Append Only File)两种方式。在Java操作方面,可以利用...
### Redis 学习笔记知识点概览 #### 一、Redis 概述与应用场景 ##### 1.1 NoSQL 数据库简介 - **定义**: NoSQL(Not Only SQL)泛指非关系型数据库,它们通常不使用传统的表格关系来存储数据。 - **特性**: NoSQL ...
这个“redis学习笔记.zip”压缩包很可能是包含了关于Redis的学习资料,可能包括概念解释、操作教程、实践案例等内容,适合初学者和有一定基础的学习者参考。 Redis的学习可以分为以下几个主要部分: 1. **基础知识...
Redis学习笔记 Redis是基于键值对存储的NoSQL数据库,可以用来存储和检索数据。下面是Redis的基础知识点: 基础命令 * set key value:保存一个数据,重复set相同的key只会保存最新的value * get key:获取一个...
它支持多种数据结构,包括字符串(String)、链表(List)、哈希(Hash)、集合(Set)和有序集合(Zset),这些丰富的数据结构使得Redis在缓存、计数、发布订阅系统等多种场景下表现出色。 1. Redis 概述与安装: Redis ...
本资源包包含了关于Redis的学习笔记以及一个基于SpringBoot整合Redis的实战项目——"springboot-redisdemo",旨在帮助你深入理解和应用Redis。 首先,让我们详细探讨Redis的核心知识点: 1. **Redis的数据类型**:...
Redis全套学习笔记 完整版pdf.rar set:添加键值对 get:获取值 apend:追价值 strlen:获取值的长度 setnx:key不存在时,设置key的值 incr:原子递增1 decr:原子递减1 incrby/decrby:递增或者递减指定的数字 ...
这份"redis笔记.rar"包含的"redis笔记.pdf"应该是一份详细的学习指南,非常适合初学者了解和掌握Redis的基本概念、操作命令以及实战技巧。 1. Redis基本概念: - Redis是一个开源的、基于内存的数据存储系统,支持...
这只是 Redis 学习的基础,深入使用还需要掌握更多的高级特性和最佳实践,例如集群搭建、主从复制、Lua 脚本、Pipeline 使用等。随着对 Redis 的了解加深,你可以将其应用到更复杂的系统设计中,优化性能和提高系统...
在本次学习笔记中,主要介绍了String类型的命令。String是最基本的类型,可以存储任何形式的数据,如二进制数据、数字或字符串。在String类型中,可以使用set命令设置值,使用get命令获取值,append命令用于追加字符...
Redis不仅支持基本的键值对存储,还支持多种数据结构,包括字符串(strings)、散列(hash)、列表(list)、集合(set)、有序集合(sorted set)以及范围查询、位图(bitmaps)、超日志(hyperloglogs)和地理空间索引...
在“redis基本命令paper-mas开发笔记”中,我们将会探讨Redis的一些核心概念和常用命令,帮助你更好地理解和运用这个强大的工具。 1. **Redis的数据类型**: - **String**:基础类型,可以存储字符串、数字等,如`...
通过这份Java Redis学习笔记,开发者可以深入了解如何在Springboot项目中高效地利用Redis进行数据存储和处理,提升系统的响应速度和稳定性。同时,配合Markdown格式,便于阅读和整理笔记,而PDF格式则方便离线查阅和...