RedisTemplate操作Redis

RedisTemplate依赖与配置

        本文环境 Spring Boot 2.1.3 + Java JDK 1.8,pom.xml 文件中导入依赖,然后在需要地方直接注入 RedisTemplate 或者 StringRedisTemplate 使用即可:

maven依赖

<!--Spring Boot redis 启动器-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
 
<!--为 redis 导入 commons-pool2 连接池依赖 -->
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
    <version>2.7.0</version>
</dependency>

配置文件

#Redis 配置,以下除了 timeout 外全部为默认配置.
spring:
  redis:
    host: localhost
    port: 6379
    database: 0
    password:
    timeout: 10000
    lettuce:
      pool:
        max-active: 1000 #池中可以分配的最大连接数,使用负值表示无限制。
        max-idle: 500 #池中'空闲'连接的最大数量,使用负值表示空闲连接的数量不限。
        min-idle: 500 #池中要维护的最小空闲连接数的目标,此设置仅在为正时有效。
        max-wait: -1ms #池中连接耗尽时引发异常之前,等待连接分配的最长时间。使用负值可以无限期等待。

redistemplate设置

设置过期时间为10分钟
redisTemplate.expire(redisKey, 10, TimeUnit.MINUTES);

删除指定key

redisTemplate.delete(key);

redistemplate对字符串类型操作

set:新增一个字符串类型的值,key是键,value是值。

 redisTemplate.opsForValue().set("string1","aaa");
设置变量值的过期时间(验证码)

redisTemplate.opsForValue().set("string3","ccc",5, TimeUnit.MINUTES); 


get:获取key键对应的值
redisTemplate.opsForValue().get("string1");

截取key键对应值得字符串,从开始下标位置开始到结束下标的位置(包含结束下标)的字符串
redisTemplate.opsForValue().get("string1",0,2);


append:在原有的值基础上新增字符串到末尾  

redisTemplate.opsForValue().append("string1","bbb");


getAndSet: 获取原来key键对应的值并重新赋新值   

redisTemplate.opsForValue().getAndSet("string1","aa");


increment: 以增量的方式将double值/long值存储在变量中

redisTemplate.opsForValue().increment("string2",5);

redistemplate对List类型操作

leftPush:从集合左边插入值

redisTemplate.opsForList().leftPush("list1","a");     
 从集合左边开始在v值后边插入新值v1

redisTemplate.opsForList().leftPush("list1","a","b");

从左边批量插入新值 

//方式一
redisTemplate.opsForList().leftPushAll("list2","a1","a2","a3");
//方式二
List<String> strings = Arrays.asList("j", "q", "k");
redisTemplate.opsForList().leftPushAll("list3", strings);

leftPop:默认移除key中最左的一个值 

redisTemplate.opsForList().leftPop("list1");
指定过期时间后删除key中最左的一个值 

redisTemplate.opsForList().leftPop("list2",5,TimeUnit.MINUTES);

range: 获取指定下标间的值

redisTemplate.opsForList().range("list2",0,2);


remove: 从存储在键中的列表中删除等于值的元素的第一个计数事件

redisTemplate.opsForList().remove("list1",0,"a");

redistemplate对Set类型操作

add:向指定key中存放set集合 

long add=redisTemplate.opsForSet().add("set1","1","2","3","4");

members:通过key获取set集合中的对象值 

Set<String> resultSet = redisTemplate.opsForSet().members("set1");


根据key查看集合中是否存在指定数据 

boolean is=redisTemplate.opsForSet().isMember("set1","1");


size:获取指定key的集合大小

redisTemplate.opsForSet().size("set1");


randomMember:获取指定key的集合中一个随机数据 

redisTemplate.opsForSet().randomMember("set1");
randomMembers:获取指定key的集合中指定个数的随机数据 ,list集合中可能存在重复的数据

redisTemplate.opsForSet().randomMembers("set1",2);
distinctRandomMembers:获取指定key的集合中指定个数的随机数据(去重) 

redisTemplate.opsForSet().distinctRandomMembers("set1",3);


move:将key1对应集合中的值v1,转移到key2集合中

redisTemplate.opsForSet().move("set1","2","set2");


pop:随机弹出指定key对应集合中的一个元素

redisTemplate.opsForSet().pop("set1");


随机弹出指定key对应集合中的指定个数个元素

redisTemplate.opsForSet().pop("set1",2);


remove:批量移除key对应集合中指定的元素

redisTemplate.opsForSet().remove("set1","1","4");


difference:获取key与另一个otherKey集合之间的差值

redisTemplate.opsForSet().difference("set1","set2");
differenceAndStore:获取key与另一个otherKey所对应的集合之间的差值,并将结果存入指定的Key集合中

redisTemplate.opsForSet().differenceAndStore("set1","set2","resultkey");


intersect:获取两个集合中的交集元素

redisTemplate.opsForSet().intersect("set1","set2");
union:获取两个集合的合集,并且去重

redisTemplate.opsForSet().union("set1","set2");

redistemplate对Hash类型操作

put:新增hashMap值

redisTemplate.opsForHash().put("hashValue","map1","value1");

get:获取key对应的map中,key为var2的map的对应的值

redisTemplate.opsForHash().get("hashValue","map1");


entries:获取key对应的所有map键值对

redisTemplate.opsForHash().entries("hashValue");


keys:获取key对应的map中所有的键

redisTemplate.opsForHash().keys("hashValue");


values:获取key对应的map中所有的值

redisTemplate.opsForHash().values("hashValue"); 

redistemplate对Hash类型操作

add:添加元素到变量中同时指定元素的分值  

redisTemplate.opsForZSet().add("zset","a",0.1);
redisTemplate.opsForZSet().add("zset","b",0.2);
redisTemplate.opsForZSet().add("zset","c",0.3);


range:获取变量指定区间的元素

redisTemplate.opsForZSet().range("zset",0,2);
reverseRange:获取变量指定区间的元素,按值从高到低排序

 redisTemplate.opsForZSet().reverseRange("zset",0,2);


zCard:获取有序集合中的成员数量   

redisTemplate.opsForZSet().zCard("zset");


remove:从有序集合中移除指定的元素

redisTemplate.opsForZSet().remove("zset","b","c");


count:统计有序集合中指定值范围内的成员数量

redisTemplate.opsForZSet().count("zset",0.0,0.2);


incrementScore:将指定成员的分数增加指定数值

redisTemplate.opsForZSet().incrementScore("zset","a",0.2);


rank:获取指定成员在有序集合中的排名(按分数从低到高排序)(排行榜)

redisTemplate.opsForZSet().rank("zset","a");
reverseRank:获取指定成员在有序集合中的排名(按分数从高到低排序)(排行榜)

redisTemplate.opsForZSet().reverseRank("zset","a");

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值