reds数据结构的使用场景

redis常见的数据结构String、hash、List、Set、zSet

String为常见的数据结构,类似java中的map key value 

 

hash 可运用到数据分段存储 降低大key带来的风险

购物车场景: cart:{用户ID}   F{商品ID}   V{商品数量}      类似 cat:0001   10002:2 

添加商品 hset cart:1001  10023   1 

增加数量   hincrby cart:1001  10023  1 

商品种类数 hlen  cart:1001

删除商品 hdel cart:1001

获取所有商品 hgetall  cart:1001

List 可作为数组使用

Set  

set  获取列表数据  

从列表中随机获取某个对象

        stringRedisTemplate.opsForSet().add("uSet","u1","u2","u3","u4");
        System.out.println(stringRedisTemplate.opsForSet().members("uSet"));
        System.out.println(stringRedisTemplate.opsForSet().randomMember("uSet"));
        stringRedisTemplate.opsForSet().add("like:ms1","m1","m2","m3","m4");
        stringRedisTemplate.opsForSet().remove("like:ms1","m2");
        System.out.println(stringRedisTemplate.opsForSet().isMember("like:ms1", "m1"));
        System.out.println(stringRedisTemplate.opsForSet().size("like:ms1"));

可记录用户信息 点赞的场景

 

还可以模拟 集合中的 交集 并集和 差集的场景  (差集为集合1 减去 集合2 和集合3的并集)

社交平台 共同关注的人 和 可能认识的人

        stringRedisTemplate.opsForSet().add("like:ms1","m1","m2","m3","m4");
        stringRedisTemplate.opsForSet().add("like:ms2","m5","m6","m3","m4");
        stringRedisTemplate.opsForSet().add("like:ms3","m7","m8","m9","m4");
        //交集 共同关注的人 第二个参数为主参数
        System.out.println(stringRedisTemplate.opsForSet().intersect("like:ms1", "like:ms2"));
        //差集 可能认识的人 第二个参数为主参数
        System.out.println(stringRedisTemplate.opsForSet().difference("like:ms2", "like:ms1"));

zSet 有序集合 集合对象的带分值 可用于 热搜数量统计排名

        stringRedisTemplate.opsForZSet().add("2020msg","ms12334",0);
        stringRedisTemplate.opsForZSet().add("2020msg","ms2345",0);
        stringRedisTemplate.opsForZSet().add("2020msg","ms223",9);
        stringRedisTemplate.opsForZSet().add("2020msg","ms222",7);
        stringRedisTemplate.opsForZSet().add("2020msg","ms224",5);
        //检索分值前三名 分值最高 倒序查询
        System.out.println(stringRedisTemplate.opsForZSet().reverseRange("2020msg",0,2));
        //自增
        stringRedisTemplate.opsForZSet().incrementScore("2020msg","ms12334",1);

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值