`

Springboot+Redis 配置和使用

 
阅读更多

 

pom.xml 引入redis 开启缓存

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

 

application.properties 配置文件

# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=localhost
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=0

 RedisService

 

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.*;
import org.springframework.stereotype.Service;

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


@Service
public class RedisService {

    @Autowired
    private RedisTemplate redisTemplate;
    /**
     * 写入缓存
     * @param key
     * @param value
     * @return
     */
    public boolean set(final String key, Object value) {
        boolean result = false;
        try {
            ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
            operations.set(key, value);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
    /**
     * 写入缓存设置时效时间
     * @param key
     * @param value
     * @return
     */
    public boolean set(final String key, Object value, Long expireTime) {
        boolean result = false;
        try {
            ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
            operations.set(key, value);
            redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
    /**
     * 批量删除对应的value
     * @param keys
     */
    public void remove(final String... keys) {
        for (String key : keys) {
            remove(key);
        }
    }

    /**
     * 批量删除key
     * @param pattern
     */
    public void removePattern(final String pattern) {
        Set<Serializable> keys = redisTemplate.keys(pattern);
        if (keys.size() > 0)
            redisTemplate.delete(keys);
    }
    /**
     * 删除对应的value
     * @param key
     */
    public void remove(final String key) {
        if (exists(key)) {
            redisTemplate.delete(key);
        }
    }
    /**
     * 判断缓存中是否有对应的value
     * @param key
     * @return
     */
    public boolean exists(final String key) {
        return redisTemplate.hasKey(key);
    }
    /**
     * 读取缓存
     * @param key
     * @return
     */
    public Object get(final String key) {
        Object result = null;
        ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
        result = operations.get(key);
        return result;
    }
    /**
     * 哈希 添加
     * @param key
     * @param hashKey
     * @param value
     */
    public void hmSet(String key, Object hashKey, Object value){
        HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
        hash.put(key,hashKey,value);
    }

    /**
     * 哈希获取数据
     * @param key
     * @param hashKey
     * @return
     */
    public Object hmGet(String key, Object hashKey){
        HashOperations<String, Object, Object>  hash = redisTemplate.opsForHash();
        return hash.get(key,hashKey);
    }

    /**
     * 列表添加
     * @param k
     * @param v
     */
    public void lPush(String k,Object v){
        ListOperations<String, Object> list = redisTemplate.opsForList();
        list.rightPush(k,v);
    }

    /**
     * 列表获取
     * @param k
     * @param l
     * @param l1
     * @return
     */
    public List<Object> lRange(String k, long l, long l1){
        ListOperations<String, Object> list = redisTemplate.opsForList();
        return list.range(k,l,l1);
    }

    /**
     * 集合添加
     * @param key
     * @param value
     */
    public void add(String key,Object value){
        SetOperations<String, Object> set = redisTemplate.opsForSet();
        set.add(key,value);
    }

    /**
     * 集合获取
     * @param key
     * @return
     */
    public Set<Object> setMembers(String key){
        SetOperations<String, Object> set = redisTemplate.opsForSet();
        return set.members(key);
    }

    /**
     * 有序集合添加
     * @param key
     * @param value
     * @param scoure
     */
    public void zAdd(String key,Object value,double scoure){
        ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
        zset.add(key,value,scoure);
    }

    /**
     * 有序集合获取
     * @param key
     * @param scoure
     * @param scoure1
     * @return
     */
    public Set<Object> rangeByScore(String key,double scoure,double scoure1){
        ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
        return zset.rangeByScore(key, scoure, scoure1);
    }
}

 测试用的Controller

 

import com.example.service.RedisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {


    @Autowired
    private RedisService redisService ;


	    @RequestMapping("/setRedis")
	    public void setRedis(){
	        redisService.set("1","value22222");
	    }
	    
	    @RequestMapping("/getRedis")
	    public String getRedis(){
	        String value = (String)redisService.get("1");
	        return value;
	    }	

}

 

 

 

 

 

 

分享到:
评论

相关推荐

    Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统.rar

    主流技术 几乎零XML,极简配置 两套UI实现(bootstrap+layer ui),可以自由切换 报表后端采用技术: SpringBoot整合SSM(Spring+Mybatis-plus+ SpringMvc),spring security 全注解式的权限管理和JWT方式禁用Session,...

    最最最简单的SpringBoot+Redis

    综上所述,"最最最简单的SpringBoot+Redis"教程涵盖了SpringBoot的快速启动,Redis的配置和使用,以及Maven的依赖管理。通过这些步骤,开发者可以轻松地在SpringBoot应用中集成Redis,实现高效的数据缓存和持久化。

    基于springboot+mybatis+shiro+redis+vue构建的前后端分离的企业通用办公管理系统,特别适合个人学习

    基于 springboot+mybatis_+shiro + redis+activiti+quarts+quartz+vue 写的一个前后分离办公企业管理系统 ,通用服务端,用于学习。 使用技术 服务端: springboot(2.2.1) + mybatis-push + shiro(1.4.0) + redis +...

    Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统

    报表后端采用技术: SpringBoot整合SSM(Spring+Mybatis-plus+ SpringMvc),spring security 全注解式的权限管理和JWT方式禁用Session,采用redis存储token及权限信息 报表前端采用Bootstrap框架,结合Jquery Ajax,...

    springboot+redis(luttuce)+Protobuf

    springboot整合redis选用 `Lettuce` 作为redis框架,选用 `Protobuf` 作为序列化框架

    springboot+redis+token保持登录

    在现代Web应用开发中,保持用户登录状态是一个常见的需求,"springboot+redis+token保持登录"的主题就涉及到了如何利用Spring Boot、Redis以及Token技术来实现这一功能。本文将详细探讨这一技术栈的实现原理和步骤。...

    Springboot+Redis+Dubbo+Rocketmq

    在Springboot中,我们可以使用Spring Data Redis模块方便地操作Redis,支持多种数据结构如字符串、哈希、列表、集合、有序集合等,实现session共享、队列服务等功能。 **Dubbo** Dubbo是阿里巴巴开源的服务治理框架...

    springboot+security+mybatis+redis+jwt,鉴权框架搭建

    本项目集成了springboot+security+mybatis+redis+jwt用于学习security鉴权功能,其中有集成了redis,mybatis,jasypt,jwt,thymeleaf,knife4j,mybatis-plus 项目搭建已经比较成熟,能够直接进行使用,通过代码...

    SpringBoot+redis+RabbitMq整合实例

    在IT行业中,Spring Boot、Redis和RabbitMQ是三个非常重要的技术组件,它们分别用于简化Java应用程序开发、数据缓存和消息队列处理。本文将详细介绍如何将这三者整合在一起,以构建一个高效、可扩展的应用系统。 ...

    Springboot+redis+mybatisplus实例

    Spring Boot提供`RedisTemplate`和`StringRedisTemplate`用于操作Redis,也可以使用` lettuce`或`Jedis`客户端库。此外,Spring Session可以利用Redis来实现会话共享,提高分布式应用的用户体验。 **Spring Boot...

    Java项目:网上电商项目(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

    一、项目简述 本系统功能包括: 一款基于Springboot+Vue的电商项目,前后端分离项目,前台后台...项目技术: Springboot + Maven + Mybatis + Vue + Redis, B/S 模式+ Maven等等,附带支付宝沙箱环境以及支付环节代码。

    vue+springboot+redis+kaptcha实现登录验证码

    4. Redis配置:确保Redis服务运行正常,并在Spring Boot中配置Redis连接,以便存储和检索验证码。 5. 验证接口:在Spring Boot中创建一个RESTful API,接收前端提交的验证码并从Redis中取出进行对比,如果匹配则...

    springboot+netty+websocket+redis

    **SpringBoot+Netty+WebSocket+Redis:构建分布式实时聊天应用** 在当今的互联网世界中,实时通信和数据共享是许多应用程序的核心需求。Spring Boot作为一款流行的Java框架,因其简洁的配置和快速开发特性而备受...

    mqtt+springBoot+redis消息处理,亲测整理上线

    在本文中,我们将深入探讨如何使用`MQTT`(Message Queuing Telemetry Transport)协议与`SpringBoot`框架集成,并利用`Redis`作为缓存来处理消息。`MQTT`是一种轻量级的发布/订阅消息协议,常用于物联网(IoT)设备...

    mqtt+springBoot+redis消息处理,

    Spring Boot提供了一种快速启动和配置Spring框架的方式,使得开发人员可以快速搭建稳定且功能完善的服务器。在本项目中,Spring Boot作为后端服务器,处理MQTT消息的接收、存储和转发,同时可能还包含了设备认证、...

    基于Springboot+Mybatis+ SpringMvc+springsecrity+Redis完整网站后台管理系统

    动态配置权限,角色和资源,权限控制到按钮粒度 采用token进行权限校验,禁用session,未登录返回401,权限不足返回403 采用redis存储token及权限信息 内置功能: 用户管理:用户查询、添加用户、修改用户、给...

    Springboot+Redis单点登录.zip

    下面我们将深入探讨如何使用 Spring Boot 和 Redis 实现 SSO。 首先,我们需要理解 Spring Boot 的角色。Spring Boot 是基于 Spring 框架构建的,旨在简化 Spring 应用的初始设置和配置。它提供了开箱即用的特性,...

    springboot + mybatis-plus + oracle + 多数据源 + redis + hutool

    springboot + mybatis-plus + database+ 多数据源 + redis + hutool 框架干净,没有其他冗余的成分; 配置了MP的代码生成器,意见生成代码,节省开发时间! 可用于各种定时任务处理,各种夸库操作, 多数据源支持...

    springboot+shiro+redis整合

    3. **编写Shiro配置**:创建一个Shiro配置类,配置Realm(权限认证),并设置SessionManager使用RedisSessionDAO,以便将Session数据保存到Redis中。 4. **自定义Realm**:根据实际业务需求,实现自定义的...

    springboot+redis+shiro单点登录,统一异常处理,统一日志

    在本项目中,我们将结合SpringBoot、Redis和Shiro来实现SSO功能,并进行统一的异常处理和日志管理。 首先,SpringBoot是一个基于Spring框架的轻量级开发工具,它简化了新Spring应用的初始搭建以及开发过程。...

Global site tag (gtag.js) - Google Analytics