SpringBoot 配置Redis操作

简介: SpringBoot 配置Redis操作

Redis安装及配置

本地测试的先下载redis,下载地址:

wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar xzf redis-5.0.7.tar.gz
cd redis-5.0.7
make
# 启动服务
src/redis-server
# 使用客户端测试连接
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

这样本地环境就搭建起来啦。但是需要注意, Redis是默认只能本地访问 需要修改配置文件

  • redis.conf
注释掉bind 127.0.0.1可以使所有的ip访问redis
修改 protected-mode,值改为no

这样就可以随意连接啦,但是生产环境需呀注意别这样搞。

SpringBoot整合Redis

  • pom.xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  • redis配置 application.properties
#=========redis基础配置=========
spring.redis.database=0
spring.redis.host=127.0.0.1
spring.redis.port=6379
# 连接超时时间 单位 ms(毫秒)
spring.redis.timeout=3000
#=========redis线程池设置=========
# 连接池中的最大空闲连接,默认值也是8。
spring.redis.jedis.pool.max-idle=200
#连接池中的最小空闲连接,默认值也是0。
spring.redis.jedis.pool.min-idle=200
# 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时
spring.redis.jedis.pool.max-wait=1000
  • 编写RedisClient.java 用来封装操作
package com.cj.tool.comtool.utils.tool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class RedisClient {
    @Autowired
    private StringRedisTemplate redisTemplate;
    /**
     * redis里面的数据类型对应StringRedisTemplate 的不同操作
     * 类型String,List,Hash,Set,ZSet 对应的方法分别是opsForValue()、opsForList()、opsForHash()、opsForSet()、opsForZSet()
     */
    /**
     * 设置键值
     * @param key
     * @param value
     * @return
     */
    public boolean set(String key, String value) {
        try {
            redisTemplate.opsForValue().set(key, value);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    /**
     * 获取指定键值
     * @param key
     * @return
     */
    public Object get(String key) {
        return redisTemplate.opsForValue().get(key);
    }
    /**
     * 删除某个键
     * @param key
     * @return
     */
    public Object delete(String key) {
        return redisTemplate.delete(key);
    }
    /**
     * 推入列表
     */
    public void listLPush(String key, String value) {
        redisTemplate.opsForList().leftPush(key, value);
    }
    public List getList(String key, int start, int end) {
        return (List) redisTemplate.opsForList().range(key, start, end); // 获取列表数据
    }
}
  • 测试使用
package com.cj.tool.comtool.controller;
import com.cj.tool.comtool.utils.tool.RedisClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class TestRedisController {
    @Autowired
    private RedisClient redisClient;
    @GetMapping("/api/v1/redis/set")
    public boolean set() {
        return redisClient.set("name", "zhangsan");
    }
    @GetMapping("/api/v1/redis/get")
    public Object get() {
        System.out.println(redisClient.get("name"));
        return redisClient.get("name");
    }
    @GetMapping("/api/v1/redis/delete")
    public Object delete() {
        System.out.println(redisClient.get("name"));
        return redisClient.delete("name");
    }
    @GetMapping("/api/v1/redis/list")
    public Object list() {
        String key = "user:list";
        redisClient.listLPush(key, "hello");
        redisClient.listLPush(key, "aoppp.com");
        return redisClient.getList(key, 0, -1);
    }
}
  • 效果


更多操作可以参考网上博客

opsForList操作

boundZSetOps操作

本文为作者原创,手码不易,允许转载,转载后请以链接形式说明文章出处。

目录
相关文章
|
5月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
|
5月前
|
NoSQL Java 网络安全
SpringBoot启动时连接Redis报错:ERR This instance has cluster support disabled - 如何解决?
通过以上步骤一般可以解决由于配置不匹配造成的连接错误。在调试问题时,一定要确保服务端和客户端的Redis配置保持同步一致。这能够确保SpringBoot应用顺利连接到正确配置的Redis服务,无论是单机模式还是集群模式。
516 5
|
6月前
|
NoSQL Java 调度
分布式锁与分布式锁使用 Redis 和 Spring Boot 进行调度锁(不带 ShedLock)
分布式锁是分布式系统中用于同步多节点访问共享资源的机制,防止并发操作带来的冲突。本文介绍了基于Spring Boot和Redis实现分布式锁的技术方案,涵盖锁的获取与释放、Redis配置、服务调度及多实例运行等内容,通过Docker Compose搭建环境,验证了锁的有效性与互斥特性。
555 0
分布式锁与分布式锁使用 Redis 和 Spring Boot 进行调度锁(不带 ShedLock)
|
8月前
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
656 9
|
9月前
|
机器学习/深度学习 数据采集 人机交互
springboot+redis互联网医院智能导诊系统源码,基于医疗大模型、知识图谱、人机交互方式实现
智能导诊系统基于医疗大模型、知识图谱与人机交互技术,解决患者“知症不知病”“挂错号”等问题。通过多模态交互(语音、文字、图片等)收集病情信息,结合医学知识图谱和深度推理,实现精准的科室推荐和分级诊疗引导。系统支持基于规则模板和数据模型两种开发原理:前者依赖人工设定症状-科室规则,后者通过机器学习或深度学习分析问诊数据。其特点包括快速病情收集、智能病症关联推理、最佳就医推荐、分级导流以及与院内平台联动,提升患者就诊效率和服务体验。技术架构采用 SpringBoot+Redis+MyBatis Plus+MySQL+RocketMQ,确保高效稳定运行。
673 0
|
12月前
|
存储 人工智能 NoSQL
SpringBoot整合Redis、ApacheSolr和SpringSession
本文介绍了如何使用SpringBoot整合Redis、ApacheSolr和SpringSession。SpringBoot以其便捷的配置方式受到开发者青睐,通过引入对应的starter依赖,可轻松实现功能整合。对于Redis,可通过配置RedisSentinel实现高可用;SpringSession则提供集群Session管理,支持多种存储方式如Redis;整合ApacheSolr时,借助Zookeeper搭建SolrCloud提高可用性。文中详细说明了各组件的配置步骤与代码示例,方便开发者快速上手。
224 11
|
存储 SQL 消息中间件
springboot整合redis
redis是一个支持key-value的数据库,数据全部在内存中处理,在在一定时间间隔中将数据固化到磁盘。因为是内存操作,所以速度特别快。(这里我们主要介绍redis作为缓存使用)
336 0
springboot整合redis
|
存储 缓存 NoSQL
SpringBoot整合Redis
SpringBoot整合Redis
712 0
SpringBoot整合Redis
|
NoSQL Redis 存储
springboot整合redis
直接上代码吧 1.首先pom中加入 org.springframework.boot spring-boot-starter-web org.
1369 0