接口:

package com.net.test.redis.base.dao;
/**
* @author***
* @Time:2017年8月10日 下午2:32:12
* @version 1.0
* @description
*/
public interface IRedisDaoNoSotredSet { public void add(String key, String...values); public void diff(String key, String otherKey); public void diddStore(String destKey, String key, String otherKey); public void inter(String key, String otherKey); public void interStore(String destKey, String key, String otherKey); public void union(String key, String otherKey); public void unionStore(String destKey, String key, String otherKey); public void pop(String key); public void remove(String key,String...values); public void size(String key); public void smembers(String key); }

实现类:

package com.net.test.redis.base.dao.imp;

import java.util.Set;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.SetOperations;
import org.springframework.stereotype.Repository; import com.net.test.redis.base.dao.IRedisDaoNoSotredSet; /**
* @author ***
* @Time:2017年8月10日 下午2:53:33
* @version 1.0
* @description
*/
@Repository
public class RedisDaoNoSotredSetImp implements IRedisDaoNoSotredSet{ @Autowired
private RedisTemplate<String, String> redis; /**
* @description 添加元素
* @param key
* @param values
*/
@Override
public void add(String key, String...values)
{
SetOperations<String, String> oper = redis.opsForSet();
int value = oper.add(key, values).intValue();
System.out.println("是否添加成功 :" + value);
} /**
* @description 找出两个集合不同的部分,并进行遍历
* @param key
* @param otherKey
*/
@Override
public void diff(String key, String otherKey)
{
SetOperations<String, String> oper = redis.opsForSet();
Set<String> set = oper.difference(key,otherKey);
for(String str : set)
{
System.out.println("两个set的不同元素 : " + str);
}
} /**
* @description 找出两个集合不同的部分,并存到destKey集合中
* @param destKey
* @param key
* @param otherKey
*/
@Override
public void diddStore(String destKey, String key, String otherKey)
{
SetOperations<String, String> oper = redis.opsForSet();
int value = oper.differenceAndStore(key, otherKey, destKey).intValue();
System.out.println("返回值 : " + value);
} /**
* @description 找出两个集合的相同部分,并进行遍历
* @param key
* @param otherKey
*/
@Override
public void inter(String key, String otherKey)
{
SetOperations<String, String> oper = redis.opsForSet();
Set<String> set = oper.intersect(key, otherKey);
for(String str : set)
{
System.out.println("两个set的相同元素 : " + str);
}
} /**
* @description 找出两个集合的相同部分,存到新集合destKey中
* @param destKey
* @param key
* @param otherKey
*/
@Override
public void interStore(String destKey, String key, String otherKey)
{
SetOperations<String, String> oper = redis.opsForSet();
int value = oper.intersectAndStore(key, otherKey, destKey).intValue();
System.out.println("返回值 : " + value);
} /**
* @description 找出兩個集合的并集,并進行遍歷
* @param key
* @param otherKey
*/
@Override
public void union(String key, String otherKey)
{
SetOperations<String, String> oper = redis.opsForSet();
Set<String> set = oper.union(key, otherKey);
for(String str : set)
{
System.out.println("两个set的相同元素 : " + str);
}
} /**
* @description 找出兩個集合的并集,并存放到新集合destKey中
* @param destKey
* @param key
* @param otherKey
*/
@Override
public void unionStore(String destKey, String key, String otherKey)
{
SetOperations<String, String> oper = redis.opsForSet();
int value = oper.unionAndStore(key, otherKey, destKey).intValue();
System.out.println("返回值 : " + value);
} /**
* @description 无序集合,随机移除一个元素
* @param key
*/
@Override
public void pop(String key)
{
SetOperations<String, String> oper = redis.opsForSet();
String value = oper.pop(key);
System.out.println("随机移除的value为 : " + value);
} /**
* @description 根据给定的元素,去移除
* @param key
* @param values
*/
@Override
public void remove(String key, String...values)
{
SetOperations<String, String> oper = redis.opsForSet();
int value = oper.remove(key, (Object[])values).intValue();
System.out.println("是否成功移除选定元素 : " + value);
} /**
* @description 获取集合长度
* @param key
*/
@Override
public void size(String key)
{
SetOperations<String, String> oper = redis.opsForSet();
int value = oper.size(key).intValue();
System.out.println("set 集合长度为 : " + value);
} /**
* @description 遍历整个集合
* @param key
*/
@Override
public void smembers(String key)
{
SetOperations<String, String> oper = redis.opsForSet();
Set<String> set = oper.members(key);
for(String str : set)
{
System.out.println("两个set的相同元素 : " + str);
}
} }

Redis之set类型操作的更多相关文章

  1. Redis之Hash类型操作

    接口IRedisDaoHash: package com.net.test.redis.base.dao; import com.net.test.redis.base.entity.UserPsg; ...

  2. python之Redis的字符串类型操作

    redis的数据类型: 字符串型    哈希     列表     集合     有序集合 1.String(字符串类型) set  命令:   设置一个键和值,键存在则只覆盖,返回ok > s ...

  3. Redis之String类型操作

    接口IRedisDaoStr: package com.net.test.redis.base.dao; import java.util.List; import java.util.Map; /* ...

  4. Redis - sort set类型操作

    sort set操作:sort set在set基础上增加了一列用于存储顺序序列设置操作:zadd key:        zadd key sortnum value        指定key增加元素 ...

  5. Redis之List类型操作

    接口: package com.net.test.redis.base.dao; import java.util.List; /** * @author *** * @Time:2017年8月10日 ...

  6. redis 的使用 ( set集合类型操作)

    set 集合类型 释义:            redis 的 set 是 string 类型的无序集合 set 元素最大可以包含(2的32次方-1)个元素 关于 set 集合类型除了基本的添加删除操 ...

  7. redis 的使用 ( list列表类型操作)

    list 数据类型 列表类型 list 类型是一个双向操作 从链表的头部或者尾部添加删除元素 list 既可以用作栈 也可以用作队列 list 链表的类型应用场合: 获取最新的 10 个用户的信息 s ...

  8. redis 的使用 (基础, key操作, string类型操作)

    使用redis set 类型: 没有重复元素 list 链表类型 有重复累型 sort set 类型 没有重复元素 1.1 存储数据 读取数据 // 数据储存在 内存中 set name laowen ...

  9. 第二百九十七节,python操作redis缓存-List类型,可以理解为列表

    python操作redis缓存-List类型,可以理解为列表,是可以有重复元素的列表 List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: lpush(name ...

随机推荐

  1. Java面向对象_静态代理模式

    概念:为其它对象提供一种代理以控制对这个对象的访问.代理模式说白了就是"真实对象"的代表,在访问对象时引入一定程度的间接性,因为这种间接性可以附加多种用途. public clas ...

  2. ThinkPHP- 3.1

    基础: 1. 基础概念 LAMP LAMP是基于Linux,Apache,MySQL和PHP的开放资源网络开发平台.这个术语来自欧洲,在那里这些程序常用来作为一种标准开发环境.名字来源于每个程序的第一 ...

  3. JDBC让java程序连上数据库(mysql数据库)

    一.小论异常: 其实JDK已经提供了一组API让java程序连上数据库,并执行SQL语句,其实说起来也蛮简单的,但是绝对是一个细致活,因为稍不留神,异常就铺天盖地的来了,下面说说这些异常吧(声明一下: ...

  4. Java规则引擎drools:drt动态生成规则并附上具体项目逻辑

    一 整合 由于本人的码云太多太乱了,于是决定一个一个的整合到一个springboot项目里面. 附上自己的项目地址https://github.com/247292980/spring-boot 以整 ...

  5. 学习笔记:MDN的JavaScript

    JavaScript 第一步 什么是JavaScript? 每次当你浏览网页时不只是显示静态信息—— 显示即时更新的内容, 或者交互式的地图,或 2D/3D 图形动画,又或者自动播放视频等,你可以确信 ...

  6. 零基础逆向工程26_C++_03_Vector

    1 Vector 核心代码 #define SUCCESS 1 // 成功 #define ERROR -1 // 失败 #define MALLOC_ERROR -2 // 申请内存失败 #defi ...

  7. CentOS服务器初始化设置

    CentOS服务器初始化设置 以阿里云服务器为例 一.挂载硬盘 1.磁盘分区 fdisk -l #查看设备,一般可以看到设备名为/dev/xvdb,或者为/dev/vdb(阿里云io优化型) fdis ...

  8. apache日志设置

    转自:http://hi.baidu.com/bxhack/item/71025d3e65987d88b611db5e apache日志存放位置 Windows: <Apache安装目录> ...

  9. 如何查看与显示oracle表的分区信息

    显示分区表信息 显示数据库所有分区表的信息:DBA_PART_TABLES 显示当前用户可访问的所有分区表信息:ALL_PART_TABLES 显示当前用户所有分区表的信息:USER_PART_TAB ...

  10. shell实现mysql数据库备份

    #!/bin/bash DB_USER="root" #数据库用户名 DB_PASS="12345678" #数据库密码 BACK_DIR="/bac ...