(Redis基础教程之八) 如何在Redis中管理Sets
- 如何在ubuntu18.04上安装和保护redis
- 如何连接到Redis数据库
- 如何管理Redis数据库和Keys
- 如何在Redis中管理副本和客户端
- 如何在Redis中管理字符串
- 如何在Redis中管理list
- 如何在Redis中管理Hashes
- 如何在Redis中管理Sets
- 如何在Redis中管理Sorted Sets
- 如何在Redis中运行事务
- 如何使Redis中的Key失效
- 如何解决Redis中的问题
- 如何从命令行更改Redis的配置
- Redis数据类型简介
介绍
Redis是一个开源的内存中键值数据存储。设置在Redis的是储存在一个给定的钥匙串的Sets。当保存在一组中时,单个记录值称为_成员_。与列表不同,Sets是无序的,并且不允许重复的值。
本教程说明了如何创建Sets,检索和删除成员以及比较不同Sets的成员。
如何使用本指南
本指南以备有完整示例的备忘单形式编写。我们鼓励您跳至与您要完成的任务相关的任何部分。
本指南中显示的命令已在运行Redis版本4.0.9的Ubuntu 18.04服务器上进行了测试。要设置类似的环境,您可以按照我们的指南如何在Ubuntu 18.04上安装和保护Redis的步骤1进行操作。我们将通过使用Redis命令行界面运行它们来演示这些命令的行为。请注意,如果您使用其他Redis界面(例如Redli),则某些命令的确切输出可能会有所不同。redis-cli
创建Sets
该sadd
命令允许您创建一个Sets并向其中添加一个或多个成员。下面的例子将创建一组在一个名为键key_horror
与成员"Frankenstein"
和"Godzilla"
:
sadd key_horror "Frankenstein" "Godzilla"
如果成功,sadd
将返回一个整数,显示它添加到Sets中的成员数量:
(integer) 2
rpush key_action "Shaft"
sadd key_action "Shane"(error) WRONGTYPE Operation against a key holding the wrong kind of value
sadd key_comedy "It's" "A" "Mad" "Mad" "Mad" "Mad" "Mad" "World"(integer) 4
即使此sadd
命令指定了八个成员,它也会丢弃四个重复的"Mad"
成员,从而将大小设置为4。
从Sets中检索成员
在本节中,我们将介绍一些Redis命令,这些命令返回有关Sets中持有的成员的信息。要练习此处概述的命令,请运行以下命令,这将创建一个由六个成员组成的Sets,该Sets的键为key_stooges
:
sadd key_stooges "Moe" "Larry" "Curly" "Shemp" "Joe" "Curly Joe"
要从Sets中返回每个成员,请运行smembers
命令,然后输入要检查的密钥:
smembers key_stooges1) "Curly"
2) "Moe"
3) "Larry"
4) "Shemp"
5) "Curly Joe"
6) "Joe"
要检查特定值是否是Sets的成员,请使用以下sismember
命令:
sismember key_stooges "Harpo"
如果元素"Harpo"
是key_stooges
Sets的成员,sismember
则将返回1
。否则,它将返回0
:
(integer) 0
要查看给定Sets中有多少成员(换句话说,找到给定Sets的_基数_),请运行scard
:
scard key_stooges(integer) 6
srandmember key_stooges"Larry"
要从Sets中返回多个随机,不同的元素,可以在srandmember
命令后加上要检索的元素数量:
srandmember key_stooges 31) "Larry"
2) "Moe"
3) "Curly Joe"
如果您向传递一个负数srandmember
,则该命令可以多次返回相同的元素:
srandmember key_stooges -31) "Shemp"
2) "Curly Joe"
3) "Curly Joe"
srandmember
尽管所使用的随机元素函数的性能在较大的数据集中有所改善,但它并不是完全随机的。有关更多详细信息,请参见命令的官方文档。
从Sets中删除成员
Redis的带有用于从一组删除成员三个命令:spop
,srem
,和smove
。
以下示例命令将从key_stooges
上一节创建的Sets中删除并返回两个随机选择的元素:
spop key_stooges 21) "Shemp"
2) "Larry"
srem
允许您从Sets中删除一个或多个特定成员,而不是随机成员:
srem key_stooges "Joe" "Curly Joe"
而不是返回从Sets中删除的成员,而是srem
返回一个整数,显示已删除的成员数:
(integer) 2
使用smove
一个成员从一组移动到另一个。此命令以该顺序接受源集,目标集和要移动的成员作为参数。请注意,一次smove
只能移动一位成员:
smove key_stooges key_jambands "Moe"
(integer) 1
如果smove
失败,它将返回(integer) 0
。请注意,如果目标键尚不存在,请smove
在将成员移入之前创建它。
比较集
sadd presidents "George" "John" "Thomas" "James"
sadd kings "Edward" "Henry" "John" "James" "George"
sadd beatles "John" "George" "Paul" "Ringo"
sinter
比较不同的Sets并返回_Sets相交_或出现在每个Sets中的值:
sinter presidents kings beatles1) "John"
2) "George"
sinterstore
执行类似的功能,但不是返回相交成员,而是在包含这些相交成员的指定目的地创建了一个新Sets。请注意,如果目的地已经存在,sinterstore
将覆盖其内容:
sinterstore new_set presidents kings beatles
smembers new_set1) "John"
2) "George"
sdiff
返回Sets差异 —由以下每个Sets的第一个指定Sets的差异得出的成员:
sdiff presidents kings beatles1) "Thomas"
sdiffstore
执行与相似的功能sdiff
,但不返回Sets差,而是在给定的目的地创建一个包含Sets差的新Sets:
sdiffstore new_set beatles kings presidents
smembers new_set1) "Paul"
2) "Ringo"
像一样sinterstore
,sdiffstore
将覆盖目标键(如果已存在)。
sunion
返回_Setsunion_或包含您指定的每个Sets的每个成员的Sets:
sunion presidents kings beatles1) "Thomas"
2) "George"
3) "Paul"
4) "Henry"
5) "James"
6) "Edward"
7) "John"
8) "Ringo"
sunion
将结果视为新集,因为它只允许出现任何给定成员。
sunionstore
执行类似的功能,但是在给定的目的地创建一个包含Sets并集的新Sets,而不仅仅是返回结果:
sunionstore new_set presidents kings beatles(integer) 8
与sinterstore
和一样sdiffstore
,sunionstore
如果目标键已经存在,它将覆盖目标键。
结论
本指南详细介绍了用于在Redis中创建和管理集的许多命令。如果您想在本指南中概述其他相关的命令,参数或过程,请在下面的评论中提出疑问或提出建议。
有关Redis命令的更多信息,请参阅关于如何管理Redis数据库的系列教程。 作者:分布式编程 出处:https://zthinker.com/ 如果你喜欢本文,请长按二维码,关注 分布式编程 .
(Redis基础教程之八) 如何在Redis中管理Sets相关推荐
- redis 基础教程
redis 基础教程 http://www.runoob.com/redis/redis-tutorial.html redis 简介 Redis 简介 Redis 是完全开源免费的,遵守BSD协议, ...
- 教程:如何在OCaml中跟踪功能
Tutorial: How to trace a function in OCaml. 教程 :如何在OCaml中 跟踪功能. Use #trace. For example, to trace fu ...
- keyshot聚光灯_【KeyShot教程】如何在KeyShot中创建和使用物理灯光?
原标题:[KeyShot教程]如何在KeyShot中创建和使用物理灯光? 在KeyShot中,有两种方法可以点亮场景.HDRI是默认方法,但也可以使用物理灯.HDRI和物理照明的组合也很有效.要添加物 ...
- Word控件Spire.Doc 【段落处理】教程(十二):如何在 C# 中管理 word 文档的分页
当我们要管理段落的分页时,我们可以直接插入分页符.但是后来我们可能会发现很难在分页符上方添加或删除文本,然后我们必须删除整个分页符.使用 Microsoft word,我们还可以使用段落对话框来管理 ...
- npm中node更新_如何在Node中管理NPM和功能时保持理智
npm中node更新 by Ted Gross 泰德·格罗斯(Ted Gross) 如何在Node中管理NPM和功能时保持理智 (How to keep your sanity while manag ...
- 没有为此文件配置应用程序上下文_如何在macOS中管理文件关联?
在macOS中,右键单击(或按住Ctrl键单击)文件时出现的"打开方式"上下文菜单提供了指向与该文件类型关联的Mac上安装的所有应用程序的链接. 列表的顶部是macOS的默认应用程 ...
- 如何在macOS中管理家长控制
如果您想让孩子或其他人访问Mac,那么有必要熟悉一下启用家长控制时作为管理员可以使用的用户帐户限制. 在macOS中,Apple可以管理单个用户帐户的各种级别的限制.因此,例如,如果您的孩子使用Mac ...
- 如何在Boxee中管理电影
Boxee is a free cross platform HTPC application that plays media locally and via the Internet. Today ...
- Redis基础,Linux下安装Redis和hredis,C++调用Redis,Redis中字符串设计
文章目录 一.Redis是什么 Redis架构 Redis优势 Redis应用场景 二.Linux下载安装Redis(Ubuntu系统) 了解Redis版本 在线安装Redis 启动Redis服务端 ...
最新文章
- centos 学习日记 文件默认权限:umaks
- ASP.NET中常用功能代码总结(5)——文件操作篇
- 《leetcode》longest-substring-without-repeating
- HTML使用vue的 event,vue-js 特殊变量$event常识
- 实例分享--告诉你如何使用语音和自然语言控制智能家居
- 纯CSS制作各种各样的网页图标(三角形、暂停按钮、下载箭头、加号等)
- 实现Mac主机上的Docker容器中的图形界面显示(运行GUI应用)
- 汉字转换成拼音的代码(asp版)
- 纵坐标是横的还是竖的_木地板怎么铺?木地板是横铺好还是竖铺好!
- python---Matplotlib简单用法
- linux-vi命令
- 如何安装uclient_UClient官方版下载_UClient手机官方版下载v2.0.0.1580_3DM单机
- WinServer 2012 R2 搭建域控服务器、文件服务器并配置权限
- 电气能插本计算机类吗,2019年专插本电气工程及自动化专业介绍
- 总结数据库连接失败等问题
- lambda函数(配合map函数)以及[x for x in]的超详细解释(实例+原理)
- Java 文件操作#常用io流方法解读
- 文件打开模式r,w,a,r+,w+,a+的区别和联系
- 在Windows环境下编译VPX
- 关于程序员发展的一些遐想-个人笔记
热门文章
- 姆吉拉假面 时间不够怎么办_丰田如何指导我们基础设施的发展(并使我赞赏吉拉)...
- sqlserver+asp.net+devextreme从零开始(1)
- 【专利转让】掌纹识别、图像复原、人脸检测定位相关领域
- Py网络编程及应用(urllib、socket/selectors)
- 软件特性开发的流程感想
- 做短视频千万不要错过这5个视频素材网
- 第二章 项目经理评分
- 【\u20a 错误解决】
- QTP/UFT能捕捉到对象但是点击不了,录制点击也没反应
- ERP系统-库存子系统-申购单