【5种数据结构的操作】RedisTemplate模版类!

RedisTemplate 是 Spring Data Redis 提供的一个操作 Redis 的模板类,它封装了 Redis 的操作,方便开发者进行 Redis 缓存操作。 

可以使用@Autowired注解直接调用!!!

@Autowired
private RedisTemplate redisTemplate;

RedisTemplate对5种数据结构的操作
redisTemplate使用如下几种方法分别针对5种数据结构进行操作:

redisTemplate.opsForValue();//操作string
 
redisTemplate.opsForHash();//操作hash
 
redisTemplate.opsForList();//操作list
 
redisTemplate.opsForSet();//操作set
 
redisTemplate.opsForZSet();//操作Zset

 数据结构的操作

(1)redisTemplate.opsForValue(字符串)

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

 redisTemplate.opsForValue().set("string1","aaa");

设置变量值的过期时间(验证码

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

get:

  • 获取key键对应的值
  • 截取key键对应值得字符串,从开始下标位置开始到结束下标的位置(包含结束下标)的字符串
redisTemplate.opsForValue().get("string1");
 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);

(2)redisTemplate.opsForList(List集合)

 leftPush:从集合左边插入值

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

 从集合左边开始在v值后边插入新值v1

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

从左边批量插入新值 

//方式一
redisTemplate.opsForList().leftPushAll("list2","a1","a2","a3");
//方式二
List 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");

(3)redisTemplate.opsForSet(Set集合)

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

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

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

Set 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");

(4)redisTemplate.opsForHash(HashMap集合)

put:新增hashMap值

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

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"); 

(5) redisTemplate.opsForZSet(set有序集合)

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");

你可能感兴趣的:(java,redis,数据库,缓存)