(六)Redis之数据结构之Set
一、常用方法
- 和List类型不同的是,Set集合中不允许出现重复的元素
- 添加/删除元素
- 获取集合中的元素
- 集合中的差集运算
- 集合中的交集运算
- 集合中的并集元算
- 扩展命令
1和2 添加/删除元素和获取集合中的元素和是否该元素
package myRedis01; import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set; import org.junit.After;
import org.junit.Test; import redis.clients.jedis.Jedis; public class JedisTest { Jedis jedis=new Jedis("127.0.0.1",6379); // 创建客户端 设置IP和端口 /**
* 添加/删除元素
*/
@Test
public void addAndDel() {
/**
* set中添加和获取
*/
jedis.sadd("set1","a","b","c");
jedis.sadd("set1","a","d","e"); System.out.println("不会出现重复的元素:"+"\t"+jedis.smembers("set1")); /**
* 删除元素
*/
jedis.srem("set1", "d","e");
System.out.println("删除两个元素后:"+"\t"+jedis.smembers("set1")); /**
* 判断某个元素是否存在
*/
boolean flag=jedis.sismember("set1", "a");
System.out.println("是否存在该元素"+"\t"+flag); } @After
public void close() {
jedis.close();
} }

3和4和5 计算差、交、并集
/**
* 计算差、交、并集
*/
@Test
public void scal() { jedis.sadd("set5", "a", "b", "c");
jedis.sadd("set6", "b", "c", "d"); /**
* 差集
* jedis.sdiff("set2","set3") 结果返回set2有但是set3没有的元素
*/
Set<String> sets=jedis.sdiff("set5","set6");
System.out.println("计算差集");
for(String str:sets) {
System.out.println(str);
}
System.out.println("============"); /**
* 交集
*/
System.out.println("计算交集");
Set<String> sets2=jedis.sinter("set5","set6");
for(String str:sets2) {
System.out.println(str);
}
System.out.println("============"); /**
* 计算并集
*/
System.out.println("计算并集"); Set<String> sets3=jedis.sunion("set5","set6");
for(String str:sets3) {
System.out.println(str);
} System.out.println("============"); }

6. 扩展命令
/**
* 扩展命令
*/
@Test
public void other() {
/**
* 计算元素总数
*/
jedis.sadd("set7", "b", "c", "d","e"); long sum=jedis.scard("set7");
System.out.println("元素总数为:"+"\t"+sum); /**
* 随机取一个元素
*/ String rand=jedis.srandmember("set7");
System.out.println("随机取一个元素"+"\t"+rand); }

(六)Redis之数据结构之Set的更多相关文章
- Redis学习——数据结构介绍(四)
一.简介 作为一款key-value 的NoSQL数据库,Redis支持的数据结构比较丰富,有:String(字符串) .List(列表) .Set(集合) .Hash(哈希) .Zset(有序集合) ...
- 探索Redis设计与实现6:Redis内部数据结构详解——skiplist
本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial ...
- 【转】Redis内部数据结构详解 -- skiplist
本文是<Redis内部数据结构详解>系列的第六篇.在本文中,我们围绕一个Redis的内部数据结构--skiplist展开讨论. Redis里面使用skiplist是为了实现sorted s ...
- redis基础数据结构及编码方式
redis基础数据结构和编码方式 一.基础数据结构 1)简单动态字符串 2)双端链表 3)字典 4)跳跃表 5)整数集合 6)压缩列表 二.对象类型与编码 在redis的数据库中创建一个新的键值对时, ...
- Redis底层数据结构详解
上一篇说了Redis有五种数据类型,今天就来聊一下Redis底层的数据结构是什么样的.是这一周看了<redis设计与实现>一书,现来总结一下.(看书总是非常烦躁的!) Redis是由C语言 ...
- Redis基本数据结构总结之STRING和LIST
Redis基本数据结构总结前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况:还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我们 ...
- Redis基本数据结构总结之SET、ZSET和HASH
Redis基本数据结构总结 前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况:还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我 ...
- Redis各种数据结构性能数据对比和性能优化实践
很对不起大家,又是一篇乱序的文章,但是满满的干货,来源于实践,相信大家会有所收获.里面穿插一些感悟和生活故事,可以忽略不看.不过听大家普遍的反馈说这是其中最喜欢看的部分,好吧,就当学习之后轻松一下. ...
- 聊一聊Redis的数据结构
如果没有记错的话,应该是在两个月前把 我们经常看到此类的文章: Redis的五种数据结构 Redis的数据结构以及对应的使用场景 其实以数据结构这个词去说明Redis的String.Hash.List ...
- Redis常用数据结构
Redis常用数据结构包括字符串(strings),列表(lists),哈希(hashes),集合(sets),有序集合(sorted sets). redis的key最大不能超过512M,可通过re ...
随机推荐
- Sentinel 快速入门
Sentinel 简介 什么是 Sentinel? 『Sentinel』是阿里中间件团队开源的,面向分布式服务架构的轻量级高可用流量控制组件,主要以流量为切入点,从流量控制.熔断降级.系统负载保护等多 ...
- SDK/JDK,Shell/Shell脚本,Apache/APR ,MTK
SDK 软件开发工具包(SoftwareDevelopmentKit) API(Application Programming Interface,应用编程接口)其实就是操作系统留给应用程序的一个调用 ...
- Linux 基于WEB开源的系统管理工具webmin
Webmin是目前功能最强大的基于Web的Unix系统管理工具.管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作.目前Webmin支持绝大多数的Unix系统,这些系统除了各种版本的l ...
- 2019-8-15C#MDI窗体实现多窗口效果
C#MDI窗体实现多窗口效果 Visual C#是微软公司推出的下一代主流程序开发语言,他也是一种功能十分强大的程序设计语言,正在受到越来越多的编程人员的喜欢.在Visual C#中,提供了为实现M ...
- OpenJudge计算概论-最长单词2
/*======================================================================== 最长单词2 总时间限制: 1000ms 内存限制: ...
- ? 原创: 铲子哥 搜狗测试 今天 shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作。那么问题来了,在一个脚本中怎么调用其他的脚本呢?有三种方式,分别是fork、source和exec。 1. fork 即通过sh 脚本名进行执行脚本的方式。下面通过一个简单的例子来讲解下它的特性。 创建father.sh,内容如下: #!/bin/bas
? 原创: 铲子哥 搜狗测试 今天 shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作.那么问题来了,在一个脚本中怎么调用其他的脚本呢?有三种方式,分别 ...
- python操作excel实用脚本
import xlrd data = xlrd.open_workbook('/home/ppe/workspace/pythonwp/tianranqi_org.xls') table = data ...
- 2013年各大小IT公司待遇,绝对真实,一线数据!(初版)
本人西电硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名小公司了:无名小公司有时也很给力哦以下绝对是各大公 ...
- 有关Linux
关于nginx https://www.cnblogs.com/jingmoxukong/p/5945200.html 停止命令 sudo systemctl stop nginx.service
- Angular实现简单数据计算与删除
AngularJS 1)什么是AngularJS AngularJS 简介 AngularJS 是一个 JavaScript 框架.它可通过 <script> 标签添加到 HTML 页面. ...