一、String类型

1.set(K key, V value):新增一个字符串类型的值,key是键,value是值。
redisTemplate.opsForValue().set(CommonConstant.TEST_STRING+"关羽","水淹七军");2.setIfAbsent(K key, V value):如果键不存在则新增,存在则不改变已经有的值。
redisTemplate.opsForValue().setIfAbsent(CommonConstant.TEST_STRING + "关羽","桃园结义");3.set(K key, V value, long timeout, TimeUnit unit):设置变量值的过期时间。
redisTemplate.opsForValue().set(CommonConstant.TEST_STRING + "关羽", "千里走单骑", 1, TimeUnit.MINUTES);4.get(Object key):获取key键对应的值
String o = (String) redisTemplate.opsForValue().get(CommonConstant.TEST_STRING + "关羽");5.getAndSet(K key, V value): 获取原来key键对应的值并重新赋新值。
String s1 = (String)redisTemplate.opsForValue().getAndSet(CommonConstant.TEST_STRING + "关羽", "败走麦城");6.increment(K key, long delta):以增量的方式将long值存储在变量中。
redisTemplate.opsForValue().increment(CommonConstant.TEST_STRING + "关羽",3);7.multiSet(Map<? extends K,? extends V> map):设置map集合到redis。
Map<String,String> map = new HashMap<>(2);
map.put("1","1");
map.put("2","2");
redisTemplate.opsForValue().multiSet(map);8.multiSetIfAbsent(Map<? extends K,? extends V> map):如果对应的map集合名称不存在,则添加,如果存在则不做修改。如果map中的某个key存在,则整个map都存入失败。
redisTemplate.opsForValue().multiSetIfAbsent(map);9.multiGet(Collection<K> keys):根据集合取出对应的value值。
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
List multiGet = redisTemplate.opsForValue().multiGet(list);

二、Hash类型

**hash 特别适合用于存储对象。**
1.put(H key, HK hashKey, HV value):新增一个键为key字段为hashKey值为value的记录。
StudentEntity studentEntity = StudentEntity.builder().studentName("织席贩履之辈").studentAge(18).id(1l).build();
StudentEntity studentEntity2 = StudentEntity.builder().studentName("方天画戟专捅义父").studentAge(28).id(2l).build();
redisTemplate.opsForHash().put(CommonConstant.TEST_HASH, studentEntity.getId(), studentEntity);
redisTemplate.opsForHash().put(CommonConstant.TEST_HASH, studentEntity2.getId(), studentEntity2);2.putIfAbsent(H key, HK hashKey, HV value)
如果键存在,在键值可以添加不存在的的键值对,如果键不存在,则新增一个键,同时将键值对添加到该键。redisTemplate.opsForHash().putIfAbsent(CommonConstant.TEST_HASH, studentEntity.getId(), "89485");3.get(H key, Object hashKey):获取键中的指定键是否有值,如果有则获取值,没有则返回null。
StudentEntity o = (StudentEntity) redisTemplate.opsForHash().get(CommonConstant.TEST_HASH, 1);4.values(H key):获取指定键的values值。
List values = redisTemplate.opsForHash().values(CommonConstant.TEST_HASH);5.keys(H key):获取键中所有的keys。
Set keys = redisTemplate.opsForHash().keys(CommonConstant.TEST_HASH);6.hasKey(H key, Object hashKey):判断键中是否有指定key。
Boolean b = redisTemplate.opsForHash().hasKey(CommonConstant.TEST_HASH, 1);7.entries(H key):获取键中的键值对。Map entries = redisTemplate.opsForHash().entries(CommonConstant.TEST_HASH);8.increment(H key, HK hashKey, long l):使键中key为hashKey的value以long值的大小进行自增长。
redisTemplate.opsForHash().increment(CommonConstant.TEST_HASH, 3, 1);9.putAll(H key, Map<? extends HK,? extends HV> m):以map集合的形式添加键值对。
Map<Long, StudentEntity> map = new HashMap<>();
StudentEntity entity = StudentEntity.builder().id(5l).studentAge(148).studentName("庄子").build();
StudentEntity entity2 = StudentEntity.builder().id(4l).studentAge(288).studentName("老子").build();
map.put(entity.getId(), entity);
map.put(entity2.getId(), entity2);
redisTemplate.opsForHash().putAll(CommonConstant.TEST_HASH, map);10.multiGet(H key, Collection<HK> hashKeys):以集合的方式获取键中的values。
List list = redisTemplate.opsForHash().multiGet(CommonConstant.TEST_HASH, Arrays.asList(1, 2, 3, 4, 5));11.delete(H key, Object... hashKeys):删除键中的键值对,可以传入多个参数,删除多个键值对。redisTemplate.opsForHash().delete(CommonConstant.TEST_HASH, 1, 2);

三、List类型

1.leftPush(K key, V value):在key左边添加元素值
redisTemplate.opsForList().leftPush(CommonConstant.TEST_LIST, "插标卖首");
2.leftPushIfPresent(K key, V value):如果存在集合则添加元素
redisTemplate.opsForList().leftPushIfPresent(CommonConstant.TEST_LIST, "叉出去");
3.leftPushAll(K key, V... values):向左边批量添加参数元素
redisTemplate.opsForList().leftPushAll(CommonConstant.TEST_LIST, "无名鼠辈", "虎女岂能嫁于犬子");
4.leftPushAll(K key, Collection<V> values):以集合的方式向左边批量添加元素
redisTemplate.opsForList().leftPushAll(CommonConstant.TEST_LIST, Arrays.asList("七进七出救阿斗", "火烧赤壁"));
5.leftPush(K key, V pivot, V value)
// 草船借箭放到无名鼠辈之前,前提是无名鼠辈已存在
redisTemplate.opsForList().leftPush(CommonConstant.TEST_LIST, "无名鼠辈", "草船借箭");
6.rightPopAndLeftPush(K sourceKey, K destinationKey):移除sourceKey集合中右边的元素,同时从左边插入destinationKey集合
// 从TEST_LIST右边移除从TEST_LIST2左边插入
redisTemplate.opsForList().rightPopAndLeftPush(CommonConstant.TEST_LIST, "TEST_LIST2");
7.rightPopAndLeftPush(K sourceKey, K destinationKey, long timeout, TimeUnit unit)
在等待的时间里,从右边移除sourceKey集合中的元素同时在destinationKey左边添加元素,如果超过等待的时间sourceKey仍没有元素则退出。
redisTemplate.opsForList().rightPopAndLeftPush("TEST_LIST2", CommonConstant.TEST_LIST, 2, TimeUnit.SECONDS);
8.leftPop(K key):移除集合中的左边第一个元素。
Object o = redisTemplate.opsForList().leftPop(CommonConstant.TEST_LIST);
logger.info(JSON.toJSONString(o));
9.leftPop(K key, long timeout, TimeUnit unit)
移除集合中左边的元素在等待的时间里,如果超过等待的时间仍没有元素则退出。
Object o1 = redisTemplate.opsForList().leftPop("TEST_LIST2", 2, TimeUnit.SECONDS);
logger.info(JSON.toJSONString(o1));
10.range(K key, long start, long end):获取指定区间的值(0到-1代表全部)
List range = redisTemplate.opsForList().range(CommonConstant.TEST_LIST, 0, -1);
range.forEach(r -> logger.info(JSON.toJSONString(r)));
11.size(K key):获取集合长度
Long size = redisTemplate.opsForList().size(CommonConstant.TEST_LIST);
logger.info(JSON.toJSONString(size));
12.index(K key, long index):获取集合指定位置的值
String index = stringRedisTemplate.opsForList().index(CommonConstant.TEST_LIST, 1);
13.set(K key, long index, V value)
// 在集合的指定位置插入元素,如果指定位置已有元素,则覆盖,超过集合size-1则会报错。
redisTemplate.opsForList().set(CommonConstant.TEST_LIST, size - 1, "七步成诗");
14.trim(K key, long start, long end):截取集合,保留长度内的数据
redisTemplate.opsForList().trim(CommonConstant.TEST_LIST, 0, size - 2);

四、sET

RedisTemplate指令相关推荐

  1. RedisTemplate value序列化导致的问题

    大家好,我是烤鸭: ​     今天分享一个redisTemplate 使用时,value 序列化的问题. 1.  问题描述 其实我最开始遇到的问题是: stringRedisTemplate.ops ...

  2. springboot 的 RedisTemplate 的 execute 和 executePipelined 功能的区别redis

    1.executespring 如下是 springboot 官网原文:springboot Redis provides support for transactions through the m ...

  3. 使用RedisTemplate实现Redis分布式锁出现的一些列问题(避坑)

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/lmx125254/ article/details/89604638 自己的项目因为会一直抓取某些信息,但是本地会和线上经常一 ...

  4. Redis 入门和 RedisTemplate 常用方法(常用命令 + 案例源码)

    Redis 入门 内容 一.Redis 概念 二.Redis 优缺点 1. 优点 2. 缺点 三.应用场景 四.Redis 安装 五.常用命令 1. Redis 字符串(String) 1.1 概念 ...

  5. SpringBoot整合redis——redisTemplate,RedisUtil的使用!

    RedisTemplate默认采用的是JDK的序列化策略,保存的key和value都是采用此策略序列化保存的. pom 加入redis相关依赖 <dependency><groupI ...

  6. QQ机器人相关指令实现-对接小夹子

    代码地址以及视频地址 代码地址 视频地址 实现小夹子网的对接 打开小夹子网了解如何对接 小夹子网 小夹子API对接文档 完成认证的功能 通过小夹子网编写相关常量信息 public interface ...

  7. JAVA RedisTemplate实现(加锁/解锁) 解决高并发问题

    基于传统的单机模式下的并发锁,已远远不能满足当下高并发大负载的情况,当下常用的并发处理如下 1.使用synchronized关键字 2.select    for update   乐观锁 3.使用r ...

  8. SpringBoot:整合Redis(概述,数据类型,持久化,RedisTemplate)

    1,Redis概述 1.1,Redis基本概念 在传统的Java Web项目中,使用数据库进行存储数据,但是有一些致命的弊端,这些弊端主要来自于性能方面.比如一些商品抢购的场景,或者是主页访问量瞬间较 ...

  9. RedisTemplate使用PipeLine管道命令

    一.为何用? 减少请求次数,将多条请求命令合成一次请求通过管道发给redis server,再通过回调函数一次性接收多个命令的结果,减少网络IO次数,在高并发情况下可带来明显性能提升.注意的是,red ...

最新文章

  1. 并发执行变成串行_一篇讲透如何理解数据库并发控制(纯干货)
  2. 「长图」使用AI前需要评估的
  3. B/S,C/S简单介绍
  4. autofac文档:服务类型,名称和键
  5. 谁说双非本科就一定无缘阿里?H哥粉丝刚刚6面通过,喜得Offer!
  6. Flink SQL的N way join
  7. 如何使用事务码SMICM分析ABAP代码发起的HTTP请求的错误
  8. 如何在Spring Boot App中集成H2数据库
  9. Protocol Buffer 序列化
  10. Linux cd命令:切换目录
  11. blink usb无线网卡驱动 linux,最新blink随身wifi驱动下载地址电脑版-CC软件
  12. linux python3命令_linux安装python3
  13. 【C++ 程序】 复数类 (Complex)
  14. Java项目(前端vue后台java微服务)在线考试系统(java+vue+springboot+mysql+maven)
  15. c语言srand函数作用,C语言之rand()和srand()函数
  16. 数码管段码代码查询工具
  17. K8S学习之Statefulset
  18. 实验八 Python文件处理
  19. 友邦人寿发布非一线差异化发展策略,稳步加速中国市场拓展布局
  20. Mac 下终端运行C++

热门文章

  1. 【推荐算法论文阅读】LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation
  2. android下实时传输h264并播放
  3. 春节红包活动如何应对10亿级流量?看大佬复盘总结
  4. Linux I2C驱动框架(超详细)
  5. Siri之父下周将推出全新AI机器人VIV
  6. 求是潮android最新版,求是潮手机站最新版
  7. 有病毒的u盘文件上传到服务器,还在被u盘病毒困扰?送你15个文件传输网站以及20+u盘工具...
  8. java手电筒源码_android平台手电筒开发源代码
  9. 牛逼大了!腾讯官方的代码安全指南免费公开
  10. SAP 技术原理搬砖 - ARAP重分类:为啥我和外币评估设计原理不一样?