Spring Boot StringRedisTemplate常用操作

Redis的坑

Redis文档中介绍存入或查询可以使Object类型,但是实际中用的是String类型

POM依赖

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

application.properties

# Redis
spring.redis.host=@spring.redis.host@
spring.redis.password=@spring.redis.password@
spring.redis.port=${port:6379}
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=1
# 连接超时时间(毫秒)
spring.redis.timeout=300

注入对象

@Resource
StringRedisTemplate stringRedisTemplate;

Redis Value

@Test
public void valueAddResitTest(){
    stringRedisTemplate.opsForValue().set("key","value");
}

@Test
public void valueGetResitTest(){
    String value = stringRedisTemplate.opsForValue().get("key");
    logger.info("value:{}", value);
}

@Test
public void valueDelResitTest(){
    stringRedisTemplate.delete("key");
}

@Test
public void valueTimeoutResitTest(){
    stringRedisTemplate.opsForValue().set("timeStep", new Date().getTime()+"", 2 ,TimeUnit.MINUTES);
}

Redis List

// list数据类型适合于消息队列的场景:比如12306并发量太高,而同一时间段内只能处理指定数量的数据!必须满足先进先出的原则,其余数据处于等待
@Test
public void listPushResitTest(){
    // leftPush依次由右边添加
    stringRedisTemplate.opsForList().rightPush("myList","1");
    stringRedisTemplate.opsForList().rightPush("myList","2");
    stringRedisTemplate.opsForList().rightPush("myList", "A");
    stringRedisTemplate.opsForList().rightPush("myList", "B");
    // leftPush依次由左边添加
    stringRedisTemplate.opsForList().leftPush("myList", "0");
}

@Test
public void listGetListResitTest(){
    // 查询类别所有元素
    List<String> listAll = stringRedisTemplate.opsForList().range( "myList", 0, -1);
    logger.info("list all {}", listAll);
    // 查询前3个元素
    List<String> list = stringRedisTemplate.opsForList().range( "myList", 0, 3);
    logger.info("list limit {}", list);
}

@Test
public void listRemoveOneResitTest(){
    // 删除先进入的B元素
    stringRedisTemplate.opsForList().remove("myList",1, "B");
}

@Test
public void listRemoveAllResitTest(){
    // 删除所有A元素
    stringRedisTemplate.opsForList().remove("myList",0, "A");
}

Redis Hash

@Test
public void hashPutResitTest(){
    // map的key值相同,后添加的覆盖原有的
    stringRedisTemplate.opsForHash().put("banks:12600000", "a", "b");
}

@Test
public void hashGetEntiresResitTest(){
    // 获取map对象
    Map<Object, Object> map = stringRedisTemplate.opsForHash().entries("banks:12600000");
    logger.info("objects:{}", map);
}

@Test
public void hashGeDeleteResitTest(){
    // 根据map的key删除这个元素
    stringRedisTemplate.opsForHash().delete("banks:12600000", "c");
}

@Test
public void hashGetKeysResitTest(){
    // 获得map的key集合
    Set<Object> objects =  stringRedisTemplate.opsForHash().keys("banks:12600000");
    logger.info("objects:{}", objects);
}

@Test
public void hashGetValueListResitTest(){
    // 获得map的value列表
    List<Object> objects = stringRedisTemplate.opsForHash().values("banks:12600000");
    logger.info("objects:{}", objects);
}

@Test
public void hashSize() {
    // 获取map对象大小
    long size =  stringRedisTemplate.opsForHash().size("banks:12600000");
    logger.info("size:{}", size);
}


作者:Qihang
链接:https://www.jianshu.com/p/29aaac3172b5
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值