Spring Boot Redis RedisTemplate 相关API介绍

Stella981
• 阅读 944

Redis五大类型:字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set)五种。

SpringBoot集成redis的RedisTemplate,也分别提供的对这些数据类型的操作。
主要有5大类:
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set

String类:

1.redisTemplate.opsForValue().set(key,value)); //设置指定键的值
2.redisTemplate.opsForValue().get(key)); //获取指定键的值。
3.redisTemplate.opsForValue().get(key, start, end);//获取存储在键上的字符串的子字符串。
4.redisTemplate.opsForValue().getAndSet(key, value);//设置键的字符串值并返回其旧值。
5.redisTemplate.opsForValue().getBit(key, offset);//返回在键处存储的字符串值中偏移处的位值。
6.redisTemplate.opsForValue().multiGet(keys);//获取所有给定键的值
7.redisTemplate.opsForValue().setBit(key, offset, value);//存储在键上的字符串值中设置或清除偏移处的位
8.redisTemplate.opsForValue().set(K key, V value, long timeout, TimeUnit unit);//使用键和到期时间来设置值
9.redisTemplate.opsForValue().setIfAbsent(key, value);//设置键的值,仅当键不存在时
10.redisTemplate.opsForValue().set(K key, V value, long offset);//在指定偏移处开始的键处覆盖字符串的一部分
11.redisTemplate.opsForValue().size(key));//获取存储在键中的值的长度
12.redisTemplate.opsForValue().multiGet(Collection keys);//为多个键分别设置它们的值
13.redisTemplate.opsForValue().multiSetIfAbsent(Map<? extends K, ? extends V> m);// 为多个键分别设置它们的值,仅当键不存在时

Hash类:

1.redisTemplate.opsForHash().delete(H key, Object... hashKeys);//删除一个或多个哈希字段。
2.redisTemplate.opsForHash().hasKey(key, hashKey);//判断是否存在散列字段。
3.redisTemplate.opsForHash().get(key, hashKey);//     获取存储在指定键的哈希字段的值。
4.redisTemplate.opsForHash().entries(key);//返回map集合
5.redisTemplate.opsForHash().increment(H key, HK hashKey, long delta);//获取存储在指定键的哈希中的所有字段和值
6.redisTemplate.opsForHash().keys(key);//返回map的key集合Set
7.redisTemplate.opsForHash().size(key); //获取散列中的字段数量
8.redisTemplate.opsForHash().multiGet(H key, Collection hashKeys);//获取所有给定哈希字段的值
9.redisTemplate.opsForHash().putAll(H key, Map<? extends HK, ? extends HV> m);//为多个哈希字段分别设置它们的值
10.redisTemplate.opsForHash().put(key, hashKey, value);//设置散列字段的字符串值
11.redisTemplate.opsForHash().putIfAbsent(key, hashKey, value);//仅当字段不存在时,才设置散列字段的值
12.redisTemplate.opsForHash().values(key);// 获取哈希中的所有值

list类:
1.redisTemplate.opsForList().leftPush(key, value);//从左向右存压栈
2.redisTemplate.opsForList().rightPush(key, value);//从右向左存压栈
3.redisTemplate.opsForList().size(key);//获取大小
4.redisTemplate.opsForList().range(key, start, end);//范围检索,根据下标,返回[start,end]的List
5.redisTemplate.opsForList().remove(key, i, value);//移除key中值为value的i个,返回删除的个数;如果没有这个元素则返回0
6.redisTemplate.opsForList().index(key, index);//检索
7.redisTemplate.opsForList().set(key, index, value);//赋值
8.redisTemplate.opsForList().trim(key, start, end);//裁剪,void,删除除了[start,end]以外的所有元素  
9.redisTemplate.opsForList().rightPopAndLeftPush(String sourceKey, String destinationKey);//将源key的队列的右边的一个值删除,然后塞入目标key的队列的左边,返回这个值

set类:
1.redisTemplate.opsForSet().add(key, value); ;//如果不存在这个字符串,将字符串存入set集合,返回存入元素的个数;如果存在这个字符串就不操作,返回0;
2.redisTemplate.opsForSet().members(key);//列出key的所有set集合
3.redisTemplate.opsForSet().randomMember(key);//随机取key的一个set元素
4.redisTemplate.opsForSet().distinctRandomMembers(key,n);//随机取N次key的元素,组成一个set集合,不可以重复取出
5.redisTemplate.opsForSet().size(key);//返回set长度
6.redisTemplate.opsForSet().difference(key, otherkey);//比较key与otherKey的set集合,取出与otherKey的set集合不一样的set集合
7.redisTemplate.opsForSet().intersect(key, otherkey);//比较key与otherKey的set集合,取出二者交集,返回set交集合
8.redisTemplate.opsForSet().union(key, otherkey);////比较key与otherKey的set集合,取出二者并集,返回set并集合
9.redisTemplate.opsForSet().unionAndStore(key, otherkey,destkey);////比较key与otherKey的set集合,取出二者并集,并存入destKey集合,返回destKey集合个数

zset类:

待添加

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)
SpringBoot中集成redisTemplate对Redis的操作(二)List类型的操作1、向列表左侧添加数据LongleftPushredisTemplate.opsForList().leftPush("name",name);2、向列表右侧添加数据
Stella981 Stella981
3年前
Redis常用命令
Redis常用命令Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sortedset:有序集合)等https://gitee.com/nmwork/RedisUtil(https://gitee.com/nmwork/RedisUtil)1.  Redis数
Stella981 Stella981
3年前
Nginx + lua +[memcached,redis]
精品案例1、Nginxluamemcached,redis实现网站灰度发布2、分库分表/基于Leaf组件实现的全球唯一ID(非UUID)3、Redis独立数据监控,实现订单超时操作/MQ死信操作SelectPollEpollReactor模型4、分布式任务调试Quartz应用
Stella981 Stella981
3年前
SpringBoot使用RedisTemplate操作Redis时,key值出现 -xac-xed-x00-x05t-x00-tb
原因分析原因与RedisTemplate源码中的默认序列化方式有关defaultSerializernewJdkSerializationRedisSerializer(classLoader!null?classLoader:this.getClass().getClassLoader()
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Easter79 Easter79
3年前
SpringBoot使用RedisTemplate操作Redis时,key值出现 -xac-xed-x00-x05t-x00-tb
原因分析原因与RedisTemplate源码中的默认序列化方式有关defaultSerializernewJdkSerializationRedisSerializer(classLoader!null?classLoader:this.getClass().getClassLoader()
Stella981 Stella981
3年前
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)
SpringBoot中集成redisTemplate对Redis的操作(二)List类型的操作1、向列表左侧添加数据LongleftPushredisTemplate.opsForList().leftPush("name",name);2、向列表右侧添加数据
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这