欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > spring操作redis

spring操作redis

2025/2/27 9:31:11 来源:https://blog.csdn.net/m0_73992740/article/details/144210664  浏览:    关键词:spring操作redis

文章目录

  • 一. redis集成到springboot
    • 1. 创建项目
    • 2. 配置redis服务地址
    • 3. 创建controller
    • 4. 使用
  • 二. 使用string
  • 三. 使用list
  • 四. 使用Hash
  • 五. 使用Set
  • 六. 使用ZSet

一. redis集成到springboot

1. 创建项目

在这里插入图片描述
或者直接引入依赖:

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

2. 配置redis服务地址

在这里插入图片描述

3. 创建controller

@RestController
public class MyController {@Autowiredprivate StringRedisTemplate redisTemplate;
}

前面使用jedis, 是通过jedis对象里的方法操作redis的
spring中则是通过StringRedisTemplate 来操作redis
StringRedisTemplate是RedisTemplate的子类, 专门用来处理文本数据的

4. 使用

在这里插入图片描述
此处的redisTemplate是把操作的Redis方法, 分成了几个类别来组织的

redisTemplate并没有封装flushAll或flushdb等方法, 可以通过execute方法来直接使用redis方法
在这里插入图片描述
RedisCallback是一个函数式接口, 相当于一个回调函数, 可以在回调里, 写redis命令, 这个回调就会被RedisTemplate内部进行执行
在这里插入图片描述
这里RedisConnection就代表Redis连接
execute要求回调方法中必须写return语句, 返回什么, 就会作为execute的返回值

二. 使用string

  @GetMapping("/testString")@ResponseBodypublic String testString() {redisTemplate.opsForValue().set("key1", "111");redisTemplate.opsForValue().set("key2", "222");redisTemplate.opsForValue().set("key3", "333");String value = redisTemplate.opsForValue().get("key1");System.out.println(value);return "ok";}

三. 使用list

@GetMapping("/testList")@ResponseBodypublic String testList(){redisTemplate.execute((RedisConnection connection) -> {connection.flushAll();return null;});redisTemplate.opsForList().leftPush("key", "111");redisTemplate.opsForList().leftPush("key2", "222");redisTemplate.opsForList().leftPush("key3", "333");String value = redisTemplate.opsForList().rightPop("key");System.out.println(value);value = redisTemplate.opsForList().rightPop("key2");System.out.println(value);value = redisTemplate.opsForList().rightPop("key3");System.out.println(value);return "ok";}

四. 使用Hash

    @GetMapping("/testHash")@ResponseBodypublic String TestHash(){redisTemplate.execute((RedisConnection connection) -> {connection.flushAll();return null;});redisTemplate.opsForHash().put("key", "field1", "111");redisTemplate.opsForHash().put("key", "field2", "222");redisTemplate.opsForHash().put("key", "field3", "333");String value = (String) redisTemplate.opsForHash().get("key", "field1");System.out.println(value);Boolean exists = redisTemplate.opsForHash().hasKey("key", "field1");System.out.println(exists);redisTemplate.opsForHash().delete("key", "field1", "field2");Long size = redisTemplate.opsForHash().size("key");System.out.println(size);return "ok";}

五. 使用Set

 @GetMapping("/testSet")@ResponseBodypublic String TestSet(){redisTemplate.execute((RedisConnection connection) -> {connection.flushAll();return null;});redisTemplate.opsForSet().add("key", "111", "222","333");Set<String> result = redisTemplate.opsForSet().members("key");System.out.println(result);Boolean exists = redisTemplate.opsForSet().isMember("key", "111");System.out.println(exists);Long count = redisTemplate.opsForSet().size("key");System.out.println(count);redisTemplate.opsForSet().remove("key", "111", "222");result = redisTemplate.opsForSet().members("key");System.out.println(result);return "ok";}

六. 使用ZSet

    @GetMapping("testZSet")@ResponseBodypublic String TestZSet(){redisTemplate.execute((RedisConnection connection) -> {connection.flushAll();return null;});redisTemplate.opsForZSet().add("key", "zhangsan", 10);redisTemplate.opsForZSet().add("key", "lisi", 20);redisTemplate.opsForZSet().add("key", "wangwu", 30);Set<String> members = redisTemplate.opsForZSet().range("key", 0, -1);System.out.println(members);Set<ZSetOperations.TypedTuple<String>> membersWithScore = redisTemplate.opsForZSet().rangeWithScores("key", 0, -1);System.out.println(membersWithScore);Double score = redisTemplate.opsForZSet().score("key", "zhangsan");System.out.println(score);redisTemplate.opsForZSet().remove("key", "zhangsan");Long size = redisTemplate.opsForZSet().size("key");System.out.println(size);Long rank = redisTemplate.opsForZSet().rank("key", "lisi");System.out.println(rank);return "ok";}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词