Springboot使用redis实现简单crud

1.添加依赖

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

2.配置application.yml

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    database: 0

账号密码没有设置则不需要配置,database:后填写你想使用的redis下的某个库,我这里使用的是db0(默认db0)

 

3. RedisService接口

public interface RedisService {
    boolean create(String key, String value);

    boolean createByKeyAndTime(String key, String value);

    String findByKey(String key);

    boolean deleteByKey(String key);
}

4.RedisServiceImpl类

@Service
public class RedisServiceImpl implements RedisService {
    @Autowired
    private StringRedisTemplate redisTemplate;

    @Override
    public boolean create(String key, String value) {
        String realKey = String.format(RedisConstant.TOKEN_PREFIX, key);
        redisTemplate.opsForValue().set(realKey, value);//向redis里存入数据和设置缓存时间
        return redisTemplate.hasKey(realKey);
    }

    @Override
    public boolean createByKeyAndTime(String key, String value) {
        String realKey = String.format(RedisConstant.TOKEN_PREFIX, key);
        redisTemplate.opsForValue().set(realKey, value, 60 * 10, TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间
        return redisTemplate.hasKey(realKey);
    }

    @Override
    public String findByKey(String key) {
        String realKey = String.format(RedisConstant.TOKEN_PREFIX, key);
        return redisTemplate.opsForValue().get(realKey);
    }

    @Override
    public boolean deleteByKey(String key) {
        String realKey = String.format(RedisConstant.TOKEN_PREFIX, key);
        return redisTemplate.delete(realKey);
    }
}

 

5.测试类

@SpringBootTest
@RunWith(SpringRunner.class)
public class RedisServiceImplTest {
    @Autowired
    private RedisService redisService;

    @Test
    public void create() {
        if (redisService.create("test1", "1")) {
            System.out.println("1");
            System.out.println(redisService.findByKey("test1"));
            System.out.println(redisService.deleteByKey("test1"));
        } else {
            System.out.println("2");
        }

    }
}

 

6  RedisConstant接口

public interface RedisConstant {
    String TOKEN_PREFIX="myRedis_%s";//储存的key以myRedis_开头
}

 

 

7.StringRedisTemplate详细用法测试类

@SpringBootTest
@RunWith(SpringRunner.class)
public class RedisServiceImplTest {
  
    @Autowired
    private StringRedisTemplate redisTemplate;
    @Test
    public void testRedis() {

        redisTemplate.opsForValue().set("test", "100",60*10, TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间

        redisTemplate.boundValueOps("test").increment(-1);//val-1

        redisTemplate.opsForValue().get("test");//根据key获取缓存中的val

        redisTemplate.boundValueOps("test").increment(1);//val+1

        redisTemplate.getExpire("test");//根据key获取过期时间
        System.out.println(redisTemplate.getExpire("test"));

        redisTemplate.getExpire("test",TimeUnit.SECONDS);//根据key获取过期时间并换算成指定单位
        System.out.println(redisTemplate.getExpire("test",TimeUnit.SECONDS));

        redisTemplate.delete("test");//根据key删除缓存

        redisTemplate.hasKey("111");//检查key是否存在,返回boolean值
        System.out.println( redisTemplate.hasKey("111"));

        redisTemplate.opsForSet().add("red_123","1","2","3");//

        redisTemplate.expire("red_123",1000 , TimeUnit.MILLISECONDS);//设置过期时间

        redisTemplate.opsForSet().isMember("red_123", "1");//根据key查看集合中是否存在指定数据
        System.out.println( redisTemplate.opsForSet().isMember("red_123", "1"));

        redisTemplate.opsForSet().members("red_123");//根据key获取set集合

        redisTemplate.opsForValue();//操作字符串
        redisTemplate.opsForHash();//操作hash
        redisTemplate.opsForList();//操作list
        redisTemplate.opsForSet(); //操作set
        redisTemplate.opsForZSet();//操作有序set
    }
}

 

 

 

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值