赞
踩
Spring Data redis 是Spring的一部分,对 Redis 底层开发包进行了高度封装。在Spring项目中,可以使用Spring Data Redis来简化操作。
操作步骤:
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-redis</artifactId>
- </dependency>
- spring:
- redis:
- host: 127.0.0.1
- port: 6379
- database: 1
- package top.suweijie.redis.config;
-
- import cn.hutool.db.nosql.redis.RedisDS;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.data.redis.connection.RedisConnectionFactory;
- import org.springframework.data.redis.core.RedisTemplate;
- import org.springframework.data.redis.serializer.StringRedisSerializer;
-
- /**
- * @Author suweijie
- * @Date 2024/1/9 17:01
- * @Description: TODO
- * @Version 1.0
- */
- @Slf4j
- @Configuration
- public class RedisConfig {
-
- @Bean
- public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
- log.info("redisTemplate init...");
- RedisTemplate redisTemplate = new RedisTemplate();
- redisTemplate.setKeySerializer(new StringRedisSerializer());
- redisTemplate.setConnectionFactory(redisConnectionFactory);
- return redisTemplate;
- }
-
- }

- package top.suweijie.redis;
-
- import jdk.nashorn.internal.runtime.regexp.joni.constants.OPSize;
- import lombok.extern.slf4j.Slf4j;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.context.SpringBootTest;
- import org.springframework.data.redis.core.*;
- import org.springframework.test.context.junit4.SpringRunner;
-
- import java.util.List;
- import java.util.concurrent.TimeUnit;
-
- /**
- * @Author suweijie
- * @Date 2024/1/9 17:05
- * @Description: TODO
- * @Version 1.0
- */
- @Slf4j
- @SpringBootTest
- @RunWith(SpringRunner.class)
- public class RedisTest {
-
- @Autowired
- private RedisTemplate redisTemplate;
-
- @Test
- public void test1() {
- ValueOperations stringObjectValueOperations = redisTemplate.opsForValue();
- HashOperations stringObjectObjectHashOperations = redisTemplate.opsForHash();
- ListOperations stringObjectListOperations = redisTemplate.opsForList();
- SetOperations setOperations = redisTemplate.opsForSet();
- ZSetOperations zSetOperations = redisTemplate.opsForZSet();
- }
- }

- @Test
- public void dealString() {
- //set key value
- redisTemplate.opsForValue().set("name","suweijie");
-
- //get key
- String name = (String)redisTemplate.opsForValue().get("name");
-
- //setex key seconds value
- redisTemplate.opsForValue().set("name","suweijie",60,TimeUnit.SECONDS);
-
- //setnx key value
- redisTemplate.opsForValue().setIfAbsent("name","suweijie");
-
- redisTemplate.delete("name");
- }

- @Test
- public void dealHash() {
- //hset key field value
- redisTemplate.opsForHash().put("user","name","suweijie");
- redisTemplate.opsForHash().put("user","age","20");
-
- //hget key field
- String name = (String)redisTemplate.opsForHash().get("user","name");
- log.info(name);
-
- //hdel key field
- redisTemplate.opsForHash().delete("user","age");
-
- //hkeys key
- Set keys = redisTemplate.opsForHash().keys("user");
- keys.forEach(System.out::println);
-
- //hvals key
- List values = redisTemplate.opsForHash().values("user");
- values.forEach(System.out::println);
- }

- @Test
- public void dealList() {
- //lpush key value1 value2
- redisTemplate.opsForList().leftPushAll("list","4","3","2","1");
-
- //lrange key start end
- List list = redisTemplate.opsForList().range("list", 0, -1);
- list.forEach(System.out::println);
-
- //rpop key
- String rightPop = (String) redisTemplate.opsForList().rightPop("list");
- log.info(rightPop);
-
- //llen key
- Long size = redisTemplate.opsForList().size("list");
- log .info(size + "");
- }

- @Test
- public void dealSet() {
- //sadd key member1 member2
- redisTemplate.opsForSet().add("set1","1","2","3","2");
- redisTemplate.opsForSet().add("set2","1","2","2","4");
-
- log.info("-------------------------------------------------");
-
- //smembers key
- Set set = redisTemplate.opsForSet().members("set1");
- set.forEach(System.out::println);
-
- log.info("-------------------------------------------------");
-
- //scard key
- Long size = redisTemplate.opsForSet().size("set2");
- log.info(size + "");
-
- log.info("-------------------------------------------------");
-
- //sinter key1 key2
- Set intersect = redisTemplate.opsForSet().intersect("set1", "set2");
- intersect.forEach(System.out::println);
-
- log.info("-------------------------------------------------");
-
- Set union = redisTemplate.opsForSet().union("set1", "set2");
- union.forEach(System.out::println);
- }

- @Test
- public void dealZset() {
- //zadd score1 member1 socre2 member2
- redisTemplate.opsForZSet().add("zset1","swj",1);
- redisTemplate.opsForZSet().add("zset1","zat",2);
-
- //zrange key start end withscores
- Set zset1 = redisTemplate.opsForZSet().rangeByScoreWithScores("zset1", 0, 3);
- zset1.forEach(System.out::println);
-
- //zincryby key increment memer
- redisTemplate.opsForZSet().incrementScore("zset1","zat",1);
-
- //zrem key member1 member2
- redisTemplate.opsForZSet().remove("zset1","swj");
-
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。