SpringBoot 整合Redis

1.

导入所需的依赖包

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>

application.yml配置:

spring:
  redis:
    database: 7    # Redis数据库索引(默认为0)
    host: localhost    # Redis服务器地址
    password:      # Redis服务器连接密码(默认为空)
    port: 6379   # Redis服务器连接端口
    timeout: 10000    # 连接空闲超过N(s秒、ms毫秒)后关闭,0为禁用,这里配置值和tcp-keepalive值一致
    # 默认使用 lettuce 连接池
    lettuce:
      pool:
        max-active: 8   # 允许最大连接数,默认8(负值表示没有限制)
        max-idle: 8    # 最大空闲连接数,默认8
        max-wait: 5s   # 连接用完时,新的请求等待时间(s秒、ms毫秒),超过该时间抛出异常JedisConnectionException,(默认-1,负值表示没有限制)
        min-idle: 0   # 最小空闲连接数,默认0

Controller控制器:通过注解Resource注入

StringRedisTemplate和RedisTemplate<String,Object>
    @Resource
    private StringRedisTemplate stringRedisTemplate; // String --> Redis

    @Resource
    private RedisTemplate<String,Object> redisTemplate;//Redis-->String/Set/Hash/ZSet

 测试接口

    @GetMapping("setString")
    public CommonResult setString(String key,String value,long timeout){
        stringRedisTemplate.opsForValue().set(
                "user"+key,
                value,
                timeout,
                TimeUnit.SECONDS);
        return CommonResult.success("成功将数据添加到Redis");
    }


    @GetMapping("getString")
    public CommonResult getString(String key){
        key = "user" + key;
        final String value = stringRedisTemplate.opsForValue().get(key);
        return CommonResult.success("查询成功",value);
    }

    @GetMapping("/setList")
    public CommonResult setList(){
        String key = "list";
        List<String> values = Arrays.asList("Redis","Java","Python");
        redisTemplate.opsForList().rightPushAll(key,values);
        return CommonResult.success("成功");
    }

    @GetMapping("/getList")
    public  List<Object> getList(){
        String key = "list";
        List<Object> values = redisTemplate.opsForList().range(key,0,-1);
        return values;
    }


    @GetMapping("/redis/setHash")
    public CommonResult setHash(){
        String key = "user";
        stringRedisTemplate.opsForHash().put(key,"name","Redis");
        stringRedisTemplate.opsForHash().put(key,"age","18");
        return CommonResult.success("成功");
    }

    @GetMapping("/redis/getHash")
    public Map<Object,Object>getHase(){
        String key = "user";
        Map<Object,Object> result = stringRedisTemplate.opsForHash().entries(key);
        return result;
    }

    @GetMapping("/redis/setSet")
    public CommonResult setSet(){
        String key = "set";
        stringRedisTemplate.opsForSet().add(key,"Redis","Java","Python");
        return CommonResult.success("成功");
    }

    @GetMapping("/redis/getSet")
    public Set<String> getSet(){
        String key = "set";
        Set<String> result = stringRedisTemplate.opsForSet().members(key);
        return result;
    }


    @GetMapping("/redis/setSortedSet")
    public CommonResult setSortedSet(){
        String key = "sortedSet";
        Set<ZSetOperations.TypedTuple<String>> values = new HashSet<>();
        values.add(new DefaultTypedTuple<>("Redis",1D));
        values.add(new DefaultTypedTuple<>("Java",2D));
        values.add(new DefaultTypedTuple<>("Python",3D));
        stringRedisTemplate.opsForZSet().add(key,values);
        return CommonResult.success("成功");
    }

    @GetMapping("/redis/getSortedSet")
    public Set<String> getSortedSet(){
        String key = "sortedSet";
        Set<String> result = stringRedisTemplate.opsForZSet().range(key,0,-1);
        return result;
    }

可以查看你的Redis数据库是否插入数据

总结:Redis 是一个非常优秀的内存数据结构存储系统,具有高可用性、高性能、持久化和支持多种数据结构等特点,在大数据领域得到了广泛应用。同时,使用 SpringBoot 也可以快速地实现 Redis 的使用,并且 StringRedisTemplate 提供了丰富的 API,可以方便地操作 Redis 中的数据。各个数据类型的实现需要根据具体业务场景而定,可以根据需要自由地选择数据结构和使用方式。
    Redis常见的五大数据类型

  String(字符串)、List(列表)、Set(集合)、Hash(散列)、ZSet(有序集合)

   stringRedisTemplate.opsForValue()[操作String(字符串)]

   stringRedisTemplate.opsForList()[操作List(列表)]

   stringRedisTemplate.opsForSet()[操作Set(集合)]

   stringRedisTemplate.opsForHash()[操作Hash(散列)]

   stringRedisTemplate.opsForZSet()[操作ZSet(有序集合)]

Redis常用数据类型可以用到的场景:

redis 常用数据类型使用场景:
String:存短信验证码、缓存、计数器、分布式session
List:发布订阅等
Set:共同好友、点赞或点踩等
Hash:存储对象
Zset:排行榜
HyperLogLog:在线用户数、统计访问量等
GeoHash:同城的人、同城的店等
BitMap:签到打卡、活跃用户等
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值