Redis五大数据类型——Redis-Set(集合)

通过Jedis操作Redis-Set!

package com.kuang.base;


import redis.clients.jedis.Jedis;

public class TestSet {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("122.112.207.13", 6379);

        jedis.auth("123456");
        System.out.println("连接成功");
        jedis.flushDB();
        System.out.println("============向集合中添加元素(不重复)============");
        System.out.println(jedis.sadd("eleSet", "e1","e2","e4","e3","e0","e8","e7","e5"));
        System.out.println(jedis.sadd("eleSet", "e6"));
        System.out.println(jedis.sadd("eleSet", "e6"));
        System.out.println("eleSet的所有元素为:"+jedis.smembers("eleSet"));
        System.out.println("删除一个元素e0:"+jedis.srem("eleSet", "e0"));
        System.out.println("eleSet的所有元素为:"+jedis.smembers("eleSet"));
        System.out.println("删除两个元素e7和e6:"+jedis.srem("eleSet", "e7","e6"));
        System.out.println("eleSet的所有元素为:"+jedis.smembers("eleSet"));
        System.out.println("随机的移除集合中的一个元素:"+jedis.spop("eleSet"));
        System.out.println("随机的移除集合中的一个元素:"+jedis.spop("eleSet"));
        System.out.println("eleSet的所有元素为:"+jedis.smembers("eleSet"));
        System.out.println("eleSet中包含元素的个数:"+jedis.scard("eleSet"));
        System.out.println("e3是否在eleSet中:"+jedis.sismember("eleSet", "e3"));
        System.out.println("e1是否在eleSet中:"+jedis.sismember("eleSet", "e1"));
        System.out.println("e1是否在eleSet中:"+jedis.sismember("eleSet", "e5"));
        System.out.println("=================================");
        System.out.println(jedis.sadd("eleSet1", "e1","e2","e4","e3","e0","e8","e7","e5"));
        System.out.println(jedis.sadd("eleSet2", "e1","e2","e4","e3","e0","e8"));
        System.out.println("将eleSet1中删除e1并存入eleSet3中:"+jedis.smove("eleSet1", "eleSet3", "e1"));//移到集合元素
        System.out.println("将eleSet1中删除e2并存入eleSet3中:"+jedis.smove("eleSet1", "eleSet3", "e2"));
        System.out.println("eleSet1中的元素:"+jedis.smembers("eleSet1"));
        System.out.println("eleSet3中的元素:"+jedis.smembers("eleSet3"));
        System.out.println("============集合运算=================");
        System.out.println("eleSet1中的元素:"+jedis.smembers("eleSet1"));
        System.out.println("eleSet2中的元素:"+jedis.smembers("eleSet2"));
        System.out.println("eleSet1和eleSet2的交集:"+jedis.sinter("eleSet1","eleSet2"));
        System.out.println("eleSet1和eleSet2的并集:"+jedis.sunion("eleSet1","eleSet2"));
        System.out.println("eleSet1和eleSet2的差集:"+jedis.sdiff("eleSet1","eleSet2"));//eleSet1中有,eleSet2中没有
        jedis.sinterstore("eleSet4","eleSet1","eleSet2");//求交集并将交集保存到dstkey的集合
        System.out.println("eleSet4中的元素:"+jedis.smembers("eleSet4"));
    }
}



效果图如下:

在这里插入图片描述

Redis-Set 笔记

Redis 是一个开源(BSD 许可)的内存数据结构存储,用作数据库、缓存、消息代理和流引擎。Redis 提供数据结构,例如 字符串散列列表集合、带范围查询的排序集合、位图超日志地理空间索引。Redis 内置了复制Lua 脚本LRU 驱逐事务和不同级别的磁盘持久性,并通过以下方式提供高可用性Redis 哨兵(Sentinel)Redis Cluster的自动分区。

我们现在讲解的所有命令大家一定要全部记住,后面我们使用SpringBoot、Jedis,所有的方法就是这些命令。

单点登录

Set(集合)

set中的值是不能重读的!

127.0.0.1:6379> sadd myset "hello"    # set集合中添加元素
(integer) 1
127.0.0.1:6379> sadd myset "jgy"
(integer) 1
127.0.0.1:6379> sadd myset  "lovejgy"
(integer) 1
127.0.0.1:6379> smembers myset        # 查看指定的set的所有值
1) "lovejgy"
2) "hello"
3) "jgy"
127.0.0.1:6379> sismember myset hello   # 判断某一个值是不是在set集合中!
(integer) 1
127.0.0.1:6379> sismember myset world   # 若不在,返回0
(integer) 0

################################################################################################

127.0.0.1:6379> scard myset        # 移除set集合中的内容元素个数!
(integer) 3

################################################################################################
srem

127.0.0.1:6379> srem myset hello     # 移除set集合中的指定元素
(integer) 1
127.0.0.1:6379> scard myset
(integer) 3
127.0.0.1:6379> smembers myset
1) "lovejgy2"
2) "lovejgy"
3) "jgy"
################################################################################################
set  无序不重复集合   抽随机!
127.0.0.1:6379> smembers myset
1) "lovejgy2"
2) "lovejgy"
3) "jgy"
127.0.0.1:6379> srandmember myset  # 随机抽选出一个元素
"jgy"
127.0.0.1:6379> srandmember myset
"jgy"
127.0.0.1:6379> srandmember myset   # 随机抽选出一个元素
"lovejgy"
127.0.0.1:6379> srandmember myset 2  # 随机抽选出指定个数的元素
1) "lovejgy"
2) "jgy"
################################################################################################
随机删除key!

127.0.0.1:6379> smembers myset
1) "lovejgy2"
2) "lovejgy"
3) "jgy"
127.0.0.1:6379> spop myset      #随机删除一个set集合中的元素!
"jgy"
127.0.0.1:6379> spop myset
"lovejgy2"
127.0.0.1:6379> smembers myset
1) "lovejgy"

################################################################################################
将一个指定的值,移动到另外一个set集合!

127.0.0.1:6379> sadd myset "hello"
(integer) 1
127.0.0.1:6379> sadd myset "world"
(integer) 1
127.0.0.1:6379> sadd myset "jgy"
(integer) 1
127.0.0.1:6379> sadd myset2 "set2"
(integer) 1
127.0.0.1:6379> smove myset myset2 "jgy"     # 将一个指定的值,移动到另外一个set集合中!
(integer) 1
127.0.0.1:6379> smembers myset
1) "hello"
2) "world"
127.0.0.1:6379> smembers myset2
1) "jgy"
2) "set2"
127.0.0.1:6379> 

################################################################################################
微博,B站,共同关注!(并集)
数字集合类 :
- 差集
- 交集
- 并集
127.0.0.1:6379> sdiff key1 key2     # 差集
1) "b"
2) "a"
127.0.0.1:6379> sinter key1 key2    # 交集   共同好友就可以这样实现!
1) "c"
127.0.0.1:6379> sunion key1 key2    # 并集
1) "b"
2) "c"
3) "a"
4) "e"
5) "d"

微博,A用户 将所有关注的人放在一个set集合中!将他的粉丝也放在一个集合中!

共同关注,共同爱好,二度好友,推荐好友。(六度分割理论)


PS: 感谢b站秦老师(遇见狂神说),这些笔记都是看他免费课程记下的。 大家觉得文档不错的话,那就请去支持一波!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

已转行@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值