Springboot+Redis 配置和使用,顺丰java社招面试

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);

Boolean expire = 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 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 lRange(String k, long l, long l1){

ListOperations<String, Object> list = redisTemplate.opsForList();

return list.range(k,l,l1);

}

/**

  • set集合添加

  • @param key

  • @param value

*/

public void addSet(String key,Object value){

SetOperations<String, Object> set = redisTemplate.opsForSet();

set.add(key,value);

}

/**

  • 集合获取

  • @param key

  • @return

*/

public Set getSetMembers(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 rangeByScore(String key, double scoure, double scoure1){

ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();

return zset.rangeByScore(key, scoure, scoure1);

}

/**

  • 从列表中取出一个值

*/

public Object lPop(String key){

ListOperations listOperations = redisTemplate.opsForList();

return listOperations.leftPop(key);

}

}

测试用的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;

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

这份《“java高分面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香)

image

image

体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-6cZHN4t6-1712109793063)]

最后

这份《“java高分面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香)

[外链图片转存中…(img-GlRTmEoK-1712109793063)]

[外链图片转存中…(img-NLZR225H-1712109793064)]

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于创建独立的、基于Spring的应用程序的框架,而Redis是一个开源的内存数据存储系统。结合使用Spring BootRedis可以实现高效的数据缓存和持久化。 在Spring Boot使用Redis,首先需要在项目的pom.xml文件中添加Redis的依赖。然后,在application.properties或application.yml文件中配置Redis的连接信息,包括主机名、端口号、密码等。 接下来,可以通过使用Spring Data Redis来简化对Redis的操作。Spring Data Redis提供了一系列的注解和模板类,可以方便地进行数据的读取、写入和删除等操作。 以下是一个简单的示例,演示了如何在Spring Boot使用Redis: 1. 添加依赖: 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 配置Redis连接信息: 在application.properties或application.yml文件中添加以下配置: ```properties spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= ``` 3. 创建Redis操作类: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; @Component public class RedisUtil { @Autowired private RedisTemplate<String, Object> redisTemplate; public void set(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public Object get(String key) { return redisTemplate.opsForValue().get(key); } public void delete(String key) { redisTemplate.delete(key); } } ``` 4. 使用Redis操作类: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @Autowired private RedisUtil redisUtil; @GetMapping("/user/{id}") public User getUser(@PathVariable String id) { // 先从缓存中获取数据 User user = (User) redisUtil.get("user:" + id); if (user == null) { // 如果缓存中不存在,则从数据库中获取数据 user = userService.getUserById(id); // 将数据存入缓存 redisUtil.set("user:" + id, user); } return user; } } ``` 以上示例中,我们创建了一个RedisUtil类来封装对Redis的操作,然后在UserController中使用RedisUtil来实现对用户数据的缓存。当请求用户数据时,先从缓存中获取,如果缓存中不存在,则从数据库中获取,并将数据存入缓存。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值