package com.daxin.jedis_datastructure;

import java.util.Set;

import org.junit.After;
import org.junit.Before;
import org.junit.Test; import redis.clients.jedis.Jedis; /**
*
* @author daxin
*
* @email leodaxin@163com
*
* @date 2017年9月13日 上午8:19:22
*
*/
public class RedisSetOperation { Jedis jedis = null; @Before
public void before() {
jedis = RedisUtils.getJedis();
jedis.flushDB();
} @After
public void after() {
jedis.close();
} @Test
public void sadd() {
// 向集合添加一个或多个成员
Long r1 = jedis.sadd("set", "1", "2", "3");// 插入的个数
System.out.println(r1);
r1 = jedis.sadd("set", "1", "2", "3", "4", "5");
System.out.println(r1);
} @Test
public void scard() {
jedis.sadd("set", "1", "2", "3");// 插入的个数
Long r1 = jedis.scard("set");
System.out.println(r1);
} @Test
public void sdiff() {
jedis.sadd("set1", "1", "2", "3", "4", "5");// 插入的个数
jedis.sadd("set2", "1", "2", "3");// 插入的个数
jedis.sadd("set3", "1", "2", "4");// 插入的个数
Set<String> r1 = jedis.sdiff("set1", "set2", "set3");
System.out.println(r1);// 打印的是:[5]
} @Test
public void sdiff_smembers() {
jedis.sadd("set1", "1", "2", "3", "4", "5", "6", "7");// 插入的个数
System.out.println(jedis.smembers("set1"));// 打印set
System.out.println(jedis.smembers("set2"));// 返回一个size=0的java的set
} /**
*
*/
@Test
public void sdiff_store() {
jedis.sadd("set1", "1", "2", "3", "4", "5", "6", "7");// 插入的个数
jedis.sadd("set2", "1", "2", "3");// 插入的个数
jedis.sadd("set3", "1", "2", "4");
// 计算set1和减去set2减去set3的差值存储到set中
Long r1 = jedis.sdiffstore("set", "set1", "set2", "set3");
System.out.println(r1);
// set遍历其元素使用smember
System.out.println(jedis.smembers("set"));
} /**
* 计算交集
*/
@Test
public void sdiff_sinter() {
jedis.sadd("set1", "1", "2", "3", "4", "5", "6", "7");// 插入的个数
jedis.sadd("set2", "1", "2", "3");// 插入的个数
Set<String> r1 = jedis.sinter("set1", "set2");
System.out.println(r1);// [1, 2, 3]
} /**
* 计算交集,并存储到目标dest_set中
*/
@Test
public void sdiff_sinterstore() {
jedis.sadd("set1", "1", "2", "3", "4", "5", "6", "7");// 插入的个数
jedis.sadd("set2", "1", "2", "3");// 插入的个数
Long r1 = jedis.sinterstore("dest_set", "set1", "set2");
System.out.println(r1);// [1, 2, 3]
} @Test
public void sdiff_sismember() {
jedis.sadd("set", "1", "2", "3", "4", "5", "6", "7");// 插入的个数
Boolean r1 = jedis.sismember("set", "6");
System.out.println(r1);// [1, 2, 3]
} @Test
public void sdiff_smove() {
jedis.sadd("set", "1", "2", "3", "4", "5", "6", "7");// 插入的个数
Long r1 = jedis.smove("set", "destkey", "2");
System.out.println(jedis.smembers("set"));// [1, 2, 3]
System.out.println(jedis.smembers("destkey"));// [1, 2, 3]
} }

Jedis关于Set的API Demo的更多相关文章

  1. Kafka2.4发布——新特性介绍(附Java Api Demo代码)

    新功能 允许消费者从最近的副本进行获取 为 Consumer Rebalance Protocol 增加对增量协同重新均衡(incremental cooperative rebalancing)的支 ...

  2. microwindows Win32 API demo

    初次使用microwindows,资料有限,我也是费了很多功夫才明白.所以记录下来,好帮助那些爱学习的童鞋,另外请大虾们多多指教. 什么是microwindows,什么作用,等背景介绍我就不多说了,因 ...

  3. Azure Storage Rest API Demo

    本文主要介绍如何使用C#基于Rest API 操作中国版Microsoft Azure Storage,涉及方法Put Blob.Get Blob以及Delete Blob,其它方法参考上面三种方法适 ...

  4. 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(二)-- Web Api Demo

    在上一篇里,我已经建立了一个简单的Web-Demo应用程序.这一篇将记录将此Demo程序改造成一个Web Api应用程序. 一.添加ASP.NET Core MVC包 1. 在project.json ...

  5. Google maps api demo

    demo: <!DOCTYPE html> <html> <head> <meta name="viewport" content=&qu ...

  6. ASP版_阿里大于短信API Demo

    阿里大于申请地址:http://www.alidayu.com 阿里大于短信发送Demo: ******index.asp************* <%@LANGUAGE="VBSC ...

  7. javascript 百度地图API - demo

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="ini ...

  8. Google maps api demo 2

    demo /** * @fileoverview Sample showing capturing a KML file click * and displaying the contents in ...

  9. Java Date API demo

    package date; import java.text.DateFormat; import java.util.Calendar; import java.util.Date; /*2015- ...

随机推荐

  1. MySQL之单表查询

    一.关键字的执行优先级 1,from:找到表 2,where:拿着where指定的约束条件,去文件/表中取出一条条数据 3,group by:将取出的一条条数据进行分组,如果没有group by,则整 ...

  2. .Net实现微信公众平台开发接口(一) 之 “微信开发配置”

    我们只要通过微信官方认证,成为开发者,才能实现微信提供的各种接口,否则即使调用了接口,微信也不会实现推送,功能也无法通过开发模式真正得到实现,所以需要正确配置微信信息,通过微信官方认证,成为开发者才可 ...

  3. eclipse + maven搭建SSM框架

    0.系统环境 1)Windows 10 企业版 2)JDK 1.8.0_131 3)Eclipse Java EE IDE for Web Developers  Version: Neon.3 Re ...

  4. 修改 this 指向

    封装函数 f,使 f 的 this 指向指定的对象 function bindThis(f, oTarget) { if(f.bind){ return f.bind(oTarget); }else{ ...

  5. NoHttp封装--02 自定义请求

    bean实体类请求: 1.bean import java.io.Serializable; import com.alibaba.fastjson.annotation.JSONField; pub ...

  6. Scala学习笔记2 (带着问题学习, 逐渐扩展。理解吃透scala.)

    问题: 把 文本字符串"[1, 2, 3, 4, 5]" 转换成一个数组. 答案: val x = "[1, 2, 3, 4, 5]" val y =x sli ...

  7. JMeter—逻辑控制器(六)

    参考<全栈性能测试修炼宝典JMeter实战>第六章 JMeter 元件详解中第一节JMeter逻辑控制器 JMeter逻辑控制器可以对元件的执行逻辑进行控制,除仅一次控制器外,其他可以嵌套 ...

  8. python第四十九天--paramiko模块安装大作战

    准备开始学习:paramiko模块,发现这个模块十分难搞 安装不上 搞了半天,win10 64下 pytyon 3.6 的 paramiko模块 死活安不上,在网上不断的找资料,可是没有用,没有用啊 ...

  9. 用python连接mysql失败总结

    所用环境:python3,pycharm2018.2.4 先用mysql创建用户并授予相关权限 在我用python连接mysql时,一直提示连接不上,报错原因就是,用户没有被给予相关权限,比如查询,插 ...

  10. 扩展BootstapTable支持TreeGrid

    (function ($) { 'use strict'; var sprintf = function (str) { var args = arguments, flag = true, i = ...