• 【5种数据结构的操作】RedisTemplate模版类!


    RedisTemplate 是 Spring Data Redis 提供的一个操作 Redis 的模板类,它封装了 Redis 的操作,方便开发者进行 Redis 缓存操作。 

    可以使用@Autowired注解直接调用!!!

    1. @Autowired
    2. private RedisTemplate redisTemplate;

    RedisTemplate对5种数据结构的操作
    redisTemplate使用如下几种方法分别针对5种数据结构进行操作:

    1. redisTemplate.opsForValue();//操作string
    2.  
    3. redisTemplate.opsForHash();//操作hash
    4.  
    5. redisTemplate.opsForList();//操作list
    6.  
    7. redisTemplate.opsForSet();//操作set
    8.  
    9. redisTemplate.opsForZSet();//操作Zset

     数据结构的操作

    (1)redisTemplate.opsForValue(字符串)

     set:新增一个字符串类型的值,key是键,value是值。

     redisTemplate.opsForValue().set("string1","aaa");

    设置变量值的过期时间(验证码

    redisTemplate.opsForValue().set("string3","ccc",5, TimeUnit.MINUTES); 

    get:

    • 获取key键对应的值
    • 截取key键对应值得字符串,从开始下标位置开始到结束下标的位置(包含结束下标)的字符串
    1. redisTemplate.opsForValue().get("string1");
    2.  redisTemplate.opsForValue().get("string1",0,2);

    append:在原有的值基础上新增字符串到末尾  

     redisTemplate.opsForValue().append("string1","bbb");

    getAndSet: 获取原来key键对应的值并重新赋新值   

    redisTemplate.opsForValue().getAndSet("string1","aa");

    increment: 以增量的方式将double值/long值存储在变量中

    redisTemplate.opsForValue().increment("string2",5);

    (2)redisTemplate.opsForList(List集合)

     leftPush:从集合左边插入值

    redisTemplate.opsForList().leftPush("list1","a");     

     从集合左边开始在v值后边插入新值v1

    redisTemplate.opsForList().leftPush("list1","a","b");

    从左边批量插入新值 

    1. //方式一
    2. redisTemplate.opsForList().leftPushAll("list2","a1","a2","a3");
    3. //方式二
    4. List strings = Arrays.asList("j", "q", "k");
    5. redisTemplate.opsForList().leftPushAll("list3", strings);

    leftPop:默认移除key中最左的一个值 

    redisTemplate.opsForList().leftPop("list1");

    指定过期时间后删除key中最左的一个值 

    redisTemplate.opsForList().leftPop("list2",5,TimeUnit.MINUTES);

    range: 获取指定下标间的值

    redisTemplate.opsForList().range("list2",0,2);

    remove: 从存储在键中的列表中删除等于值的元素的第一个计数事件

    redisTemplate.opsForList().remove("list1",0,"a");

    (3)redisTemplate.opsForSet(Set集合)

    add:向指定key中存放set集合 

    1. long add=redisTemplate.opsForSet().add("set1","1","2","3","4");
    2. redisTemplate.opsForSet().add("set2","5","1","4");

    members:通过key获取set集合中的对象值 

    Set resultSet = redisTemplate.opsForSet().members("set1");

    根据key查看集合中是否存在指定数据 

    boolean is=redisTemplate.opsForSet().isMember("set1","1");

    size:获取指定key的集合大小

    redisTemplate.opsForSet().size("set1");

    randomMember:获取指定key的集合中一个随机数据 

    redisTemplate.opsForSet().randomMember("set1");

    randomMembers:获取指定key的集合中指定个数的随机数据 ,list集合中可能存在重复的数据

    redisTemplate.opsForSet().randomMembers("set1",2);

    distinctRandomMembers:获取指定key的集合中指定个数的随机数据(去重) 

    redisTemplate.opsForSet().distinctRandomMembers("set1",3);

    move:将key1对应集合中的值v1,转移到key2集合中

    redisTemplate.opsForSet().move("set1","2","set2");

    pop:随机弹出指定key对应集合中的一个元素

    redisTemplate.opsForSet().pop("set1");

    随机弹出指定key对应集合中的指定个数个元素

    redisTemplate.opsForSet().pop("set1",2);

    remove:批量移除key对应集合中指定的元素

    redisTemplate.opsForSet().remove("set1","1","4");

    difference:获取key与另一个otherKey集合之间的差值

    redisTemplate.opsForSet().difference("set1","set2");

    differenceAndStore:获取key与另一个otherKey所对应的集合之间的差值,并将结果存入指定的Key集合中

    redisTemplate.opsForSet().differenceAndStore("set1","set2","resultkey");

    intersect:获取两个集合中的交集元素

    redisTemplate.opsForSet().intersect("set1","set2");

    union:获取两个集合的合集,并且去重

    redisTemplate.opsForSet().union("set1","set2");

    (4)redisTemplate.opsForHash(HashMap集合)

    put:新增hashMap值

    1. redisTemplate.opsForHash().put("hashValue","map1","value1");
    2. redisTemplate.opsForHash().put("hashValue","map2","value2");

    get:获取key对应的map中,key为var2的map的对应的值

    redisTemplate.opsForHash().get("hashValue","map1");

    entries:获取key对应的所有map键值对

    redisTemplate.opsForHash().entries("hashValue");

    keys:获取key对应的map中所有的键

    redisTemplate.opsForHash().keys("hashValue");

    values:获取key对应的map中所有的值

    redisTemplate.opsForHash().values("hashValue"); 

    (5) redisTemplate.opsForZSet(set有序集合)

    add:添加元素到变量中同时指定元素的分值  

    1. redisTemplate.opsForZSet().add("zset","a",0.1);
    2. redisTemplate.opsForZSet().add("zset","b",0.2);
    3. redisTemplate.opsForZSet().add("zset","c",0.3);

    range:获取变量指定区间的元素

    redisTemplate.opsForZSet().range("zset",0,2);

    reverseRange:获取变量指定区间的元素,按值从高到低排序

     redisTemplate.opsForZSet().reverseRange("zset",0,2);

    zCard:获取有序集合中的成员数量   

    redisTemplate.opsForZSet().zCard("zset");

    remove:从有序集合中移除指定的元素

       redisTemplate.opsForZSet().remove("zset","b","c");

    count:统计有序集合中指定值范围内的成员数量

    redisTemplate.opsForZSet().count("zset",0.0,0.2);

    incrementScore:将指定成员的分数增加指定数值

     redisTemplate.opsForZSet().incrementScore("zset","a",0.2);

    rank:获取指定成员在有序集合中的排名(按分数从低到高排序)(排行榜

       redisTemplate.opsForZSet().rank("zset","a");

    reverseRank:获取指定成员在有序集合中的排名(按分数从高到低排序)(排行榜

    redisTemplate.opsForZSet().reverseRank("zset","a");
  • 相关阅读:
    分享68个毕业答辩PPT,总有一款适合您
    【FreeRTOS-----笔记(基础)】
    Git --》如何在IDEA中玩转Git与GitHub?
    婴儿摇篮出口美国CPC认证要求
    二级缓存j2cache和SpringBoot整合
    「React | 网站部署」如何在云服务器上部署React并通过Nginx开放外网访问
    linux 自带压力测试工具ab
    【Unity】TimeLine系列教程——编排剧情!
    通义千问1.5(Qwen1.5)大语言模型在PAI-QuickStart的微调与部署实践
    Python实现WOA智能鲸鱼优化算法优化随机森林回归模型(RandomForestRegressor算法)项目实战
  • 原文地址:https://blog.csdn.net/m0_63216218/article/details/132742775