Jedis操作Redis--Set类型
/**
* Set(集合)
* SADD,SCARD,SDIFF,SDIFFSTORE,SINTER,SINTERSTORE,SISMEMBER,SMEMBERS,SMOVE,SPOP,SRANDMEMBER,SREM,SUNION,SUNIONSTORE,SSCAN
*/
public class SetTypeTest {
private Jedis jedis; private static final String KEY = "set"; private static final String VALUE = "layman"; @Before
public void setUp() {
this.jedis = new Jedis(new JedisShardInfo("192.168.133.188", 6379));
} /**
* SADD key member [member ...]
* 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。
* 假如 key 不存在,则创建一个只包含 member 元素作成员的集合。
* 当 key 不是集合类型时,返回一个错误。
*/
@Test
public void SADD() {
jedis.sadd(KEY, VALUE + 2, VALUE + 0, VALUE + 1);
SMEMBERS();
} /**
* SCARD key
* 返回集合 key 的基数(集合中元素的数量)。
*/
@Test
public void SCARD() {
System.out.println(jedis.scard(KEY));
} /**
* SDIFF key [key ...]
* 返回一个集合的全部成员,该集合是所有给定集合之间的差集。
* 不存在的 key 被视为空集。
* <p/>
* SDIFFSTORE destination key [key ...]
* 这个命令的作用和 SDIFF 类似,但它将结果保存到 destination 集合,而不是简单地返回结果集。
* 如果 destination 集合已经存在,则将其覆盖。
* destination 可以是 key 本身。
*/
@Test
public void SDIFF() {
SMEMBERS();
jedis.sadd(KEY + 0, VALUE + 1, VALUE + 3);
System.out.println(jedis.smembers(KEY + 0));
System.out.println(jedis.sdiff(KEY, KEY + 0));//返回值为KEY-KEY0的值
} /**
* SINTER key [key ...]
* 返回一个集合的全部成员,该集合是所有给定集合的交集。
* 不存在的 key 被视为空集。
* 当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。
* <p/>
* SINTERSTORE destination key [key ...]
* 这个命令类似于 SINTER 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。
* 如果 destination 集合已经存在,则将其覆盖。
* destination 可以是 key 本身。
*/
@Test
public void SINTER() {
System.out.println(jedis.sinter(KEY, KEY + 0));
} /**
* SISMEMBER key member
* 判断 member 元素是否集合 key 的成员。
*/
@Test
public void SISMEMBER() {
System.out.println(jedis.sismember(KEY, VALUE + 0));
System.out.println(jedis.sismember(KEY, VALUE + 5));
} /**
* SMEMBERS key
* 返回集合 key 中的所有成员。
* 不存在的 key 被视为空集合。
*/
@Test
public void SMEMBERS() {
Set<String> smembers = jedis.smembers(KEY);
System.out.println(smembers);
} /**
* SMOVE source destination member
* 将 member 元素从 source 集合移动到 destination 集合。
* SMOVE 是原子性操作。
* 如果source集合不存在或不包含指定的member元素,则SMOVE命令不执行任何操作,仅返回0。否则,member元素从source集合中被移除,并添加到destination 集合中去。
* 当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。
* 当 source 或 destination 不是集合类型时,返回一个错误。
*/
@Test
public void SMOVE() {
System.out.println(jedis.smembers(KEY));
System.out.println(jedis.smembers(KEY + 0));
jedis.smove(KEY, KEY + 0, "layman0");
System.out.println(jedis.smembers(KEY));
System.out.println(jedis.smembers(KEY + 0));
} /**
* SPOP key
* 移除并返回集合中的一个随机元素。
* 如果只想获取一个随机元素,但不想该元素从集合中被移除的话,可以使用 SRANDMEMBER 命令。
*/
@Test
public void SPOP() {
SMEMBERS();
System.out.println(jedis.spop(KEY));
SMEMBERS();
} /**
* SRANDMEMBER key [count]
* 如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。
* 从 Redis 2.6 版本开始, SRANDMEMBER 命令接受可选的 count 参数:
* 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。
* 如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。
* 该操作和 SPOP 相似,但 SPOP 将随机元素从集合中移除并返回,而 SRANDMEMBER 则仅仅返回随机元素,而不对集合进行任何改动。
*/
@Test
public void SRANDMEMBER() {
System.out.println(jedis.smembers(KEY + 0));
System.out.println(jedis.srandmember(KEY + 0, 2));
System.out.println(jedis.srandmember(KEY + 0, -2));
} /**
* SREM key member [member ...]
* 移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。
* 当 key 不是集合类型,返回一个错误。
*/
@Test
public void SREM() {
SMEMBERS();
jedis.srem(KEY, "layman1");
SMEMBERS();
} /**
* SUNION key [key ...]
* 返回一个集合的全部成员,该集合是所有给定集合的并集。
* 不存在的 key 被视为空集。
* <p/>
* SUNIONSTORE destination key [key ...]
* 这个命令类似于 SUNION 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。
* 如果 destination 已经存在,则将其覆盖。
* destination 可以是 key 本身。
*/
@Test
public void SUNION() {
SMEMBERS();
jedis.sadd(KEY + 0, "layman" + new Random().nextInt(50));
System.out.println(jedis.sunion(KEY, KEY + 0));
}
}
Jedis操作Redis--Set类型的更多相关文章
- Jedis操作Redis技巧详解
对于Redis的部署模式有两种,单机模式 和 集群模式.因此,本文的介绍也从这两个方面进行介绍.众所周知,Jedis是最著名的Redis java客户端操作类库,几乎支持所有的Redis操作.本文就是 ...
- Java中Jedis操作Redis与Spring的整合
Redis是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop. ...
- Redis入门和Java利用jedis操作redis
Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...
- Jedis操作Redis数据库
添加Maven依赖: <dependencies> <!-- 单元测试 --> <dependency> <groupId>junit</grou ...
- Jedis操作Redis
Jedis操作Redis的常用封装方法 @Resource(name="jedispool") private JedisPool pool=null; /** * 设置缓存对象过 ...
- 四、Jedis操作Redis
前言: 原来我们操作mysql需要用的jdbc,现在操作redis则需要jedis,jedis是客户端,而redis是服务器,使用jedis客户端来操作redis. 在这里要使用jedis操作red ...
- JAVA中通过Jedis操作Redis连接与插入简单库
一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...
- jedis操作redis的几种常见方式总结
Redis是一个著名的key-value存储系统,也是nosql中的最常见的一种,这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...
- Spring-Boot 使用 Jedis 操作 Redis
背景: 1.Redis 之前学了个皮毛 还忘的差不多了,感觉公司项目中的Redis用的真的牛逼,so 需要深造. 2.有个同事在搞Jedis,勾起了我对知识的向往,不会用,但是很渴望. 过程: 1.改 ...
- Redis】Java中使用Jedis操作Redis(Maven导入包)、创建Redis连接池
如果我们使用Java操作Redis, 需要确保已经安装了 redis 服务及 Java redis 驱动. Maven项目可以直接在pom.xml中加入jedis包驱动: <!-- https: ...
随机推荐
- 比特币and区块链
比特币简介 比特币(Bitcoin:比特金)最早是一种网络虚拟货币,可以购买现实生活当中的物品.它的特点是分散化.匿名.只能在数字世界使用,不属于任何国家和金融机构,并且不受地域的限制,可以在世界上的 ...
- Python3的日志添加功能
python日志添加功能,主要记录程序运行中的日志,统一收集并分析 一.日志的级别 debug(调试信息) info() warning(警告信息)error(错误信息) critical(致命信息) ...
- ubuntu中设置python默认版本
看/usr/bin中的Python文件,发现该文件是python2.7的链接文件 于是直接删掉这个软链接,然后重新创建python2.6的链接文件: 1 rm /usr/bin/python 2 ln ...
- windows下hexo+github搭建个人博客
网上利用hexo搭建博客的教程非常多,大部分内容都大同小异,选择一篇合适的参考,跟着一步一步来即可. 但是,很多博客由于发布时间较为久远等问题,其中某些操作在现在已不再适用,从而导致类似于我这样的小白 ...
- (13)ASP.NET Core 中的选项模式(Options)
1.前言 选项(Options)模式是对配置(Configuration)的功能的延伸.在12章(ASP.NET Core中的配置二)Configuration中有介绍过该功能(绑定到实体类.绑定至对 ...
- Dialog 使用详解
极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以 ...
- 佳木斯集训Day2
D2好点了,最起码不像之前那么水 T1按照常规操作是个找规律,类似于括号匹配的题,但是又不是,推进栈里,然后看最长的左括号有多少个,然后直接cout就可以了 #include <bits/std ...
- 【Python】狂蟒来袭 | 使用Anaconda搭建Python开发环境
这段时间转了一个小圈圈,发现又回来了,瞎忙.想要学习数据挖掘的小伙伴一定得对机器学习有所了解吧,我之前看过几页周志华老师的西瓜书,但终没能坚持下来. 人生处处是起点,什么时候都不晚.记此笔记以分享与督 ...
- 喜大普奔 | 微信小程序支持PC端打开了
微信小程序可以在PC端打开啦 微信PC版发布了v2.7.0测试版,其中一个重磅的功能就是:支持打开聊天中分享的小程序 咖啡君这么喜欢尝鲜的人自然是在第一时间下载进行了体验 安装成功,会有功能更新说明 ...
- 为什么我们不用JIRA
很多人问我,缺陷管理工具,为什么不用jira?而去自己造轮子开发一款bug记录系统 缄默如我,原因众多.如果只是3-5分钟就能讲的请的时候,我会先列出什么糟点呢? 1. 收费,一个人一个月的费用差不多 ...