接口:

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. C#获得字符串首字符字母(大写)

    /// <summary> /// 获得字符串首字符字母(大写): /// </summary> /// <param name="cnChar"&g ...

  2. 我对USB的认识

    一.USB协议规范 (1)      基本概念   每一个设备(device)会有一个或者多个的逻辑连接点在里面,每个连接点叫endpoint.每个endpoint有四种数据传送方式:控制(Contr ...

  3. 学习笔记:Web Storage API

    Web Storage API 提供了存储机制,通过该机制,浏览器可以安全地存储键值对,比使用 cookie 更加直观. Web Storage 包含如下两种机制: sessionStorage 为每 ...

  4. nginx停止后再启动出现: [error] open() "/usr/local/nginx/logs/nginx.pid" failed错误的解决方法

    为了备份数据 手动停止了服务器的nginx 结果启动时报错 nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" fail ...

  5. <logger>和<root>

    <logger>用来设置某一个包或者具体一个类的日志打印级别.以及制定<appender>.<logger>可以包含零个或者多个<appender-ref&g ...

  6. Win10 应用商店管理应用

    在企业日常办公中,对 Windows 10 应用商店软件不需要,希望办公系统干净一些.企业运维中,我们可以使用组策略来管理Windows 10 微软Store应用程序.可以根据组织的要求进行配置,多项 ...

  7. shell脚本常识

    --------------------------------------------------------------- --------------            概要      -- ...

  8. Bezier贝塞尔曲线的原理、二次贝塞尔曲线的实现

    Bezier曲线的原理 Bezier曲线是应用于二维图形的曲线.曲线由顶点和控制点组成,通过改变控制点坐标可以改变曲线的形状. 一次Bezier曲线公式: 一次Bezier曲线是由P0至P1的连续点, ...

  9. IOS 核心动画(Core Animation)

    Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它 能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就 可以实现非常强大的功能. Core ...

  10. IOS @param view 需要获取层级结构的view

    - (void)applicationDidBecomeActive:(UIApplication *)application { NSString *str = [self digView:self ...