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
set:新增一个字符串类型的值,key是键,value是值。
redisTemplate.opsForValue().set("string1","aaa");
设置变量值的过期时间(验证码)
redisTemplate.opsForValue().set("string3","ccc",5, TimeUnit.MINUTES);
get:
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);
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");
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");
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");
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");