Redis之set类型操作
接口:
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类型操作的更多相关文章
- Redis之Hash类型操作
接口IRedisDaoHash: package com.net.test.redis.base.dao; import com.net.test.redis.base.entity.UserPsg; ...
- python之Redis的字符串类型操作
redis的数据类型: 字符串型 哈希 列表 集合 有序集合 1.String(字符串类型) set 命令: 设置一个键和值,键存在则只覆盖,返回ok > s ...
- Redis之String类型操作
接口IRedisDaoStr: package com.net.test.redis.base.dao; import java.util.List; import java.util.Map; /* ...
- Redis - sort set类型操作
sort set操作:sort set在set基础上增加了一列用于存储顺序序列设置操作:zadd key: zadd key sortnum value 指定key增加元素 ...
- Redis之List类型操作
接口: package com.net.test.redis.base.dao; import java.util.List; /** * @author *** * @Time:2017年8月10日 ...
- redis 的使用 ( set集合类型操作)
set 集合类型 释义: redis 的 set 是 string 类型的无序集合 set 元素最大可以包含(2的32次方-1)个元素 关于 set 集合类型除了基本的添加删除操 ...
- redis 的使用 ( list列表类型操作)
list 数据类型 列表类型 list 类型是一个双向操作 从链表的头部或者尾部添加删除元素 list 既可以用作栈 也可以用作队列 list 链表的类型应用场合: 获取最新的 10 个用户的信息 s ...
- redis 的使用 (基础, key操作, string类型操作)
使用redis set 类型: 没有重复元素 list 链表类型 有重复累型 sort set 类型 没有重复元素 1.1 存储数据 读取数据 // 数据储存在 内存中 set name laowen ...
- 第二百九十七节,python操作redis缓存-List类型,可以理解为列表
python操作redis缓存-List类型,可以理解为列表,是可以有重复元素的列表 List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: lpush(name ...
随机推荐
- Java面向对象_静态代理模式
概念:为其它对象提供一种代理以控制对这个对象的访问.代理模式说白了就是"真实对象"的代表,在访问对象时引入一定程度的间接性,因为这种间接性可以附加多种用途. public clas ...
- ThinkPHP- 3.1
基础: 1. 基础概念 LAMP LAMP是基于Linux,Apache,MySQL和PHP的开放资源网络开发平台.这个术语来自欧洲,在那里这些程序常用来作为一种标准开发环境.名字来源于每个程序的第一 ...
- JDBC让java程序连上数据库(mysql数据库)
一.小论异常: 其实JDK已经提供了一组API让java程序连上数据库,并执行SQL语句,其实说起来也蛮简单的,但是绝对是一个细致活,因为稍不留神,异常就铺天盖地的来了,下面说说这些异常吧(声明一下: ...
- Java规则引擎drools:drt动态生成规则并附上具体项目逻辑
一 整合 由于本人的码云太多太乱了,于是决定一个一个的整合到一个springboot项目里面. 附上自己的项目地址https://github.com/247292980/spring-boot 以整 ...
- 学习笔记:MDN的JavaScript
JavaScript 第一步 什么是JavaScript? 每次当你浏览网页时不只是显示静态信息—— 显示即时更新的内容, 或者交互式的地图,或 2D/3D 图形动画,又或者自动播放视频等,你可以确信 ...
- 零基础逆向工程26_C++_03_Vector
1 Vector 核心代码 #define SUCCESS 1 // 成功 #define ERROR -1 // 失败 #define MALLOC_ERROR -2 // 申请内存失败 #defi ...
- CentOS服务器初始化设置
CentOS服务器初始化设置 以阿里云服务器为例 一.挂载硬盘 1.磁盘分区 fdisk -l #查看设备,一般可以看到设备名为/dev/xvdb,或者为/dev/vdb(阿里云io优化型) fdis ...
- apache日志设置
转自:http://hi.baidu.com/bxhack/item/71025d3e65987d88b611db5e apache日志存放位置 Windows: <Apache安装目录> ...
- 如何查看与显示oracle表的分区信息
显示分区表信息 显示数据库所有分区表的信息:DBA_PART_TABLES 显示当前用户可访问的所有分区表信息:ALL_PART_TABLES 显示当前用户所有分区表的信息:USER_PART_TAB ...
- shell实现mysql数据库备份
#!/bin/bash DB_USER="root" #数据库用户名 DB_PASS="12345678" #数据库密码 BACK_DIR="/bac ...