在 Java 中 操作 Redis <springboot>

  使用windows系统下idea操作使用,首先要确认系统下redis安装并开启了服务

 

 

  1. 创建springboot 项目
  2. pom.xml文件下添加 Redis 的依赖
  3. application.properties或者application.yml中添加redis配置
  4. 创建测试类,增加@RunWith(SpringRunner.class)注解 进行单元测试
  5. 在测试类下 注入 RedisRemplate 类 ,进行测试操作

 

参考文章 : springboot项目添加redis

 

package com.paopao.springbootredis;

import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.connection.DataType;
import org.springframework.data.redis.core.*;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;

@SpringBootTest
@RunWith(SpringRunner.class)
class SpringbootredisApplicationTests {

    @Autowired
    private RedisTemplate redisTemplate;

    /**
     * 操作 string 类型数据
     */
    @Test
    void testString() {

        ValueOperations value = redisTemplate.opsForValue();
        value.set("myValue2","xiaominghaha2");

        String myValue2 = (String) value.get("myValue2");
        System.out.println(myValue2);

        value.set("key1","value1",10l, TimeUnit.SECONDS);

        Boolean aBoolean = value.setIfAbsent("myValue2", "nanjing");//当某个可以不存在的时候设置,如果存在返回false
        System.out.println(aBoolean);
        Boolean aBoolean2 = value.setIfAbsent("myValue0", "nanjing");//当某个可以不存在的时候设置,如果存在返回false

    }

    /**
     * 操作 Hash 类型数据
     */
    @Test
    void testHash(){
        HashOperations hash = redisTemplate.opsForHash();

        //存值
        hash.put("002","name","xiaominghaha");
        hash.put("002","age","66");
        hash.put("002","address","nanjing");

        //取值
        String age = (String) hash.get("002", "age");
        System.out.println(age);

        //获取 hash 结构中的所有字段
        Set keys = hash.keys("002");
        for (Object key : keys) {
            System.out.println(key);
        }
        //获取 hash 结构中的所有值
        List values = hash.values("002");
        for (Object value : values) {
            System.out.println(value);
        }
    }

    /**
     * 操作list类型数据
     */
    @Test
    void listTest(){
        ListOperations list = redisTemplate.opsForList();

        //存值
        list.leftPush("myList", "a");
        list.leftPushAll("myList", "b", "c", "d");
        //取值
        List myList = list.range("myList", 0, -1);
        for (Object value : myList) {
            System.out.println(value);
        }
        //获得列表的长度
        Long size = list.size("myList");
        int lSize = size.intValue();
        for (int i = 0; i < lSize; i++) {
            //出队列
            String elment = (String) list.rightPop("myList");
            System.out.println(elment);
        }
    }
    /**
     * 操作 set 类型数据
     */
    @Test
    void setTest(){
        SetOperations set = redisTemplate.opsForSet();
        //存值
        set.add("mySet","a","b","c","x","y");
        //取值
        Set mySet = set.members("mySet");
        for (Object o : mySet) {
            System.out.println(o);
        }
        //删除成员
        set.remove("mySet","a","b");
        //取值
        mySet = set.members("mySet");
        for (Object o : mySet) {
            System.out.println(o);
        }
    }

    /**
     * 操作 zset 类型的数据
     */
    @Test
    void zSetTest(){
        ZSetOperations zSet = redisTemplate.opsForZSet();
        //存值
        zSet.add("myzset", "a",10.0);
        zSet.add("myzset", "b",11.0);
        zSet.add("myzset", "c",12.0);
        zSet.add("myzset", "a",13.0);//value重复会自动取消添加
        //取值
        Set myzset = zSet.range("myzset", 0, -1);
        for (Object o : myzset) {
            System.out.println(o);
        }
        System.out.println("-----------------------");
        //修改分数
        zSet.incrementScore("myzset","b",20);
        //取值
        myzset = zSet.range("myzset", 0, -1);
        for (Object o : myzset) {
            System.out.println(o);
        }
        System.out.println("-----------------------");

        //删除成员
        zSet.remove("myzset","a","b");
        //取值
        myzset = zSet.range("myzset", 0, -1);
        for (Object o : myzset) {
            System.out.println(o);
        }
        System.out.println("-----------------------");
    }
    /**
     * 通用操作,针对不同的数据类型都可以操作
     */
    @Test
    void testCommon(){
        //获取 Redis 中的所有的key
        Set keys = redisTemplate.keys("*");
        for (Object key : keys) {
            System.out.println(key);
        }
        //判断某个可以是否存在
        Boolean itcast = redisTemplate.hasKey("itcast");
        System.out.println(itcast);
        //删除指定key
        redisTemplate.delete("myzset");
        //获取指定key对应的value的数据类型
        DataType dataType = redisTemplate.type("mySet");
        System.out.println(dataType.name());
    }

}

 

posted @ 2023-01-30 15:59  没有好想法  阅读(90)  评论(0)    收藏  举报