Spring-data-Redis笔记

本文介绍了如何使用SpringBoot的RedisTemplate操作Redis中的五种主要数据结构:字符串、List、Hash、Set和ZSet。详细展示了各种操作方法,如设置和获取字符串、向List中添加元素、管理Hash、处理Set以及操作有序集合ZSet的成员等。
摘要由CSDN通过智能技术生成
前置工作
  1. 项目的pom.xml 文件中引入了spring-boot-starter-data-redis
  2. 文件中引入
    @Autowired
    private StringRedisTemplate redisTemplate;
Redis 常用的五种数据结构对应的操作
    redisTemplate.opsForValue(); //操作字符串
    redisTemplate.opsForHash(); //操作hash
    redisTemplate.opsForList(); //操作list
    redisTemplate.opsForSet(); //操作set
    redisTemplate.opsForZSet(); //操作有序set
1.操作字符串
 
 // 1. 为多个键别设置他们的值:
       Map<String,String> maps = new HashMap<String, String>();
        maps.put("multi1","11");
        maps.put("multi2","22");
        maps.put("multi3","33");
        redisTemplate.opsForValue().multiSet(maps)
        List<String> keys = new ArrayList<String>();
        keys.add("multi1");
        keys.add("multi2");
        keys.add("multi3"); 
        redisTemplate.opsForValue().multiGet(keys);
        
// 2. 返回key 所对应的value 的长度
       redisTemplate.opsForValue().size("key")
       
 3//.截取 key 所对应的 value 字符串
       redisTemplate.opsForValue().get("key",0,5)
2.操作List
   1. // 从左边添加元素
   String [] arrs = new String[]{"java", "python", "go", "ruby"};
   redisTemplate.opsForList().leftPushAll("list", arrs)
   
   2.// 返回列表键对应的元素,0是第一个元素
   redisTemplate.opsForList().range("list",0,-1)   // 返回值["java", "python", "go", "ruby"]
   
   3. // 删除元素   count=0删除给定元素
   redisTemplate.opsForList().remove("list", 0,"python");
   
   4.// 在列表中 index 位置设置value 值
   redisTemplate.opsForList().set("list",1,"setValue");
   
   5. // 根据下标获取列表值,
   redisTemplate.opsForList().index("list",0);
   
3.操作 Hash
// 1.插入map 
  Map<String,Object> myMap = new HashMap<String,Object>();
        myMap.put("key1", "张三");
        myMap.put("key2", "李四");
        myMap.put("key3", "王五");
        myMap.put("key4", "张三");
        redisTemplate.opsForHash().putAll("map1",myMap);
        
// 2.显示给定key对应的数据

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

// 3.判断 hashkey 是否存在

  redisTemplate.opsForHash().hasKey("map1","key2");
  
// 4.获取 key 所对应 的散列表的key

  redisTemplate.opsForHash().keys("map1")

// 5.根据键值,获取整个hash存储的值

  redisTemplate.opsForHash().values("map1")
  
// 6. 使用 Cursor 在key的hash 中迭代
  Cursor<Map.Entry<Object,Object>> cursor = redisTemplate.opsForHash().scan("map1", ScanOptions.NONE);
        while(cursor.hasNext()){
            Map.Entry<Object,Object> entry = cursor.next();
            System.out.println("hashkey值:" + entry.getKey()+":"+entry.getValue());
        }


4.操作 Set
       // 1. 添加元素,返回集合个数
       String[] arrays = new String[]{"str1","str2"};
       redisTemplate.opsForSet().add("setTest", arrays);

        // 2.移除元素
        String[] rm= new String[]{"strarr1","str2","time1", "time2", "rain"};
        System.out.println(redisTemplate.opsForSet().add("setRmTest", rm));
        redisTemplate.opsForSet().remove("setRmTest",rm[1]);

        // 3.返回集合中的所有成员
        System.out.println(redisTemplate.opsForSet().members("setTest"));

        // 4. key 无序集合合并
        redisTemplate.opsForSet().union("setTest","setRmTest");

        // 5.遍历 set
        Cursor<String> curosr = redisTemplate.opsForSet().scan("setRmTest", ScanOptions.NONE);
        while(curosr.hasNext()){
            System.out.println("遍历 set:" + curosr.next());
        }

        // 6.无序集合差集 (返回所有第一个集合中与其他集合不一样的元素)
		 redisTemplate.opsForSet().members("setTest");
		 redisTemplate.opsForSet().members("setRmTest");
		 redisTemplate.opsForSet().difference("setTest","setRmTest");

5.操作 ZSet
     // 1.新增一个有序集合
  	  redisTemplate.opsForZSet().add("zset1","小王",99);
       
   	  redisTemplate.opsForZSet().randomMember("zset1");

      // 2.显示有序集合所有的元素
       System.out.println("升序返回集合所有成员:" + redisTemplate.opsForZSet().range("zset1",0,-1));

      // 3.升序返回有序集合中指定成员的排名,分数值从小到大
       System.out.println(redisTemplate.opsForZSet().rank("zset1","小王")); // 2

      // 4.降序返回有序集合中指定成员的排名,分数值从大到小
       System.out.println(redisTemplate.opsForZSet().reverseRank("zset1","小王")); // 0

      // 5.降序返回有序集合指定区域的成员 (分数从大到小)
       System.out.println("降序返回有序集合" + redisTemplate.opsForZSet().reverseRange("zset1",0,-1));

      // 6.获取有序集合成员数
      redisTemplate.opsForZSet().size("zset1");

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

spring-boot-starter-data-redis 学习笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值