(六)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 ...
随机推荐
- Linux | Vim使用
Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...
- 唯品会HDFS性能挑战和优化实践
唯品会HDFS性能挑战和优化实践 原创: 大数据平台 唯技术 4月1日 https://mp.weixin.qq.com/s/LMa99ubgACI4eaDV3G-6gw
- python 适合的才是最好的
群里老有人问最新的破解码最新的包,最新的就是最好的吗? 今天说一下这些新手的坑: numpy 最好使用的版本是1.13.3 而非新的1.17.0 pandas最好使用的版本是0.18.0 而非新的0 ...
- Linux 下kafka集群搭建
主机的IP地址: 主机IP地址 zookeeper kafka10.19.85.149 myid=1 broker.id=110.19.15.103 myid=2 broker.id=210.19.1 ...
- 阶段5 3.微服务项目【学成在线】_day18 用户授权_18-微服务之间认证-需求分析
4.1 需求分析 前边章节已经实现了用户携带身份令牌和JWT令牌访问微服务,微服务获取jwt并完成授权. 当微服务访问微服务,此时如果没有携带JWT则微服务会在授权时报错. 测试课程预览: 1.将课程 ...
- ELK之在CentOS7.5上使用rpm包安装配置ELK7版本
一,安装环境查看 二,软件版本选用 jdk 1.8.0_171 elasticsearch 7.1.1 kibana 7.1.1 logstash 7.1.1 三,安装配置 1,安装JDK 过程不详述 ...
- dubbo的负载均衡策略和容错策略
一.dubbo 负载均衡策略 random loadbalance 默认情况下,dubbo 是 random load balance 随机调用实现负载均衡,可以对 provider 不同实例设置不同 ...
- w10环境下Hexo博客搭建
w10使用hexo+github手把手搭建自己的第一个博客 对一个程序员来说,博客的重要性不言而喻,不但可以积累知识,还可以更好的给别人分享自己的心得.今天就以时下比较流行的hexo博客搭建属于自己的 ...
- 云计算第一章:服务器硬件及linux初体验
第一章:服务器硬件及linux初体验 一.了解linux: 1.linux的三大分支:debian.redhat.ubuntu 2.redhat版本: redhat:红帽,简称RHEL,企业级官方版本 ...
- for i in range()
for i in range()就是python中的循环语句 有以下三种常见用法: 1.range(3) [0,3)即0,1,2 2.range(1,3) [1,3)即1,2 3.range(1,5, ...