zoukankan      html  css  js  c++  java
  • 通过spring-data-redis操作Redis

    一、操作String类型数据

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration("classpath:spring/applicationContext-redis.xml")
    public class RedisStrTest {
    
        @Autowired
        private RedisTemplate redisTemplate;
    
        @Test
        public void testSetString(){
            //模板绑定存储的数据类型为String并存入数据: key是bookName value是Java基础
            redisTemplate.boundValueOps("bookName").set("Java基础");
        }
    
        @Test
        public void testGetString(){
            //模板绑定存储的数据类型为String并取数据:使用key bookName
            String testStr = (String) redisTemplate.boundValueOps("bookName").get();
            System.out.println(testStr);
        }
    
        @Test
        public void testDelString(){
            //直接用模板根据key删除数据,删除后无数据查询返回null
            redisTemplate.delete("bookName");
        }
    
        //使用相同的key重新设置值便是更新
    }

    二、操作List类型数据

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration("classpath:spring/applicationContext-redis.xml")
    public class RedisListTest {
    
        @Autowired
        private RedisTemplate redisTemplate;
    
        @Test
        public void testSetList(){
            //模板绑定存储的数据类型为List并存入数据:key是myList,List的数据类型
            redisTemplate.boundListOps("myList").leftPush("java");
            redisTemplate.boundListOps("myList").leftPush("c#");
            redisTemplate.boundListOps("myList").leftPush("python");
        }
    
        @Test
        public void testGetList(){
            //模板绑定存储的数据类型为List并取数据:key是myList,rang中0是开始,-1是全部
            List myList = redisTemplate.boundListOps("myList").range(0, -1);
            myList.stream().forEach(System.out::println);
            //取list中的一个数据 :先进先出(相当于弹出-删除了)
            //String myList = (String) redisTemplate.boundListOps("myList").rightPop();
            //System.out.println(myList); //java
        }
    
        @Test
        public void testDelList(){
            //直接用模板根据key删除数据(删除整个集合)
            redisTemplate.delete("myList");
            //指定删除list的数据 :删除一个java
            //redisTemplate.boundListOps("myList").remove(1,"java");
        }
    
        //使用相同的key重新设置值便是更新
    }

    三、操作Set类型数据

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration("classpath:spring/applicationContext-redis.xml")
    public class RedisSetTest {
    
        @Autowired
        private RedisTemplate redisTemplate;
    
        @Test
        public void testSetValue(){
            //模板绑定存储的数据类型为Set并存入数据: key是mySet
            redisTemplate.boundSetOps("mySet").add("Java");
            redisTemplate.boundSetOps("mySet").add("c#");
            redisTemplate.boundSetOps("mySet").add("python");
            redisTemplate.boundSetOps("mySet").add("html");
        }
    
        @Test
        public void testGetValue(){
            //模板绑定存储的数据类型为Set并取数据:使用key为 mySet
            Set mySet = redisTemplate.boundSetOps("mySet").members();
            mySet.stream().forEach(System.out::println);
        }
    
        @Test
        public void testDelValue(){
            //直接用模板根据key删除数据,删除整个Set集合
            redisTemplate.delete("mySet");
            //redisTemplate.boundSetOps("mySet").remove("html");
        }
    
        //使用相同的key重新设置值便是更新
    }

    四、操作ZSet类型数据

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration("classpath:spring/applicationContext-redis.xml")
    public class RedisZSetTest {
    
        @Autowired
        private RedisTemplate redisTemplate;
    
        //ZSet集合有序,数据有分值
        @Test
        public void testSetValue(){
            //模板绑定存储的数据类型为Set并存入数据: key是myZSet
           redisTemplate.boundZSetOps("myZSet").add("Java",15);
           redisTemplate.boundZSetOps("myZSet").add("c#",55);
           redisTemplate.boundZSetOps("myZSet").add("python",25);
           redisTemplate.boundZSetOps("myZSet").add("html",45);
        }
    
        @Test
        public void testGetValue(){
            //1.模板绑定存储的数据类型为ZSet并取数据:使用key为 myZSet(取一定分值范围的)
            //Set myZSet = redisTemplate.boundZSetOps("myZSet").rangeByScore(20, 50);
            //myZSet.stream().forEach(System.out::println);
            //2.取全部的
            //Set myZSet = redisTemplate.boundZSetOps("myZSet").range(0, -1);
            //myZSet.stream().forEach(System.out::println);
            //3.取数据,带分值
            Set<DefaultTypedTuple> myZSet = redisTemplate.boundZSetOps("myZSet").rangeWithScores(0, -1);
            for (DefaultTypedTuple defaultTypedTuple : myZSet) {
                System.out.println(defaultTypedTuple.getValue());//数据
                System.out.println(defaultTypedTuple.getScore());//分值
            }
        }
    
        @Test
        public void testDelValue(){
            //1.直接用模板根据key删除数据,删除整个ZSet集合
            //redisTemplate.delete("myZSet");
            //2.删除部分数据
            redisTemplate.boundZSetOps("myZSet").removeRangeByScore(15,25);
        }
    
        //使用相同的key重新设置值便是更新
    }

    五、操作Hash类型数据

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration("classpath:spring/applicationContext-redis.xml")
    public class RedisHashTest {
    
        @Autowired
        private RedisTemplate redisTemplate;
    
        @Test
        public void testSetHash(){
            //模板绑定存储的数据类型为Hash并存入数据: key是myHash value是{后端:Java}等键值对
            redisTemplate.boundHashOps("myHash").put("后端","Java");
            redisTemplate.boundHashOps("myHash").put("前端","html");
            redisTemplate.boundHashOps("myHash").put("数据库","mysql");
        }
    
        @Test
        public void testGetHash(){
            //模板绑定存储的数据类型为Hash并取数据:使用key为 myHash,获取键的集合
            //Set myHash = redisTemplate.boundHashOps("myHash").keys();
            //myHash.stream().forEach(System.out::println);
            //获取value的集合(值可重复,所以是list)
            //List myHash = redisTemplate.boundHashOps("myHash").values();
            //myHash.stream().forEach(System.out::println);
            //使用myHash这个key获取到Hash并用键获取值
            String s = (String) redisTemplate.boundHashOps("myHash").get("后端");
            System.out.println(s);
        }
    
        @Test
        public void testDelHash(){
            //直接用模板根据key删除数据,删除整个Hash集合
            //redisTemplate.delete("myHash");
            redisTemplate.boundHashOps("myHash").delete("后端");
        }
    
        //使用相同的key重新设置值便是更新
    }

    原文链接:Redis和SpringDataRedis

  • 相关阅读:
    程序员代码面试指南:IT名企算法与数据结构题目最优解
    经典排序算法
    Log4j输出格式控制--log4j的PatternLayout参数含义
    常用数据库4 mongodb
    常用数据库2 sqlite及SQL注入
    面试常问-数据库索引实现原理
    自定义web框架
    HTML|CSS之布局相关总结
    C++模板类练习题
    C++中的运算符重载练习题
  • 原文地址:https://www.cnblogs.com/YeHuan/p/12268792.html
Copyright © 2011-2022 走看看