一、操作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类型

1.add(K key, V... values):向key中批量添加值
Long add = stringRedisTemplate.opsForSet().add(CommonConstant.TEST_SET, "温酒斩华雄", "温酒斩华雄", "三英战吕布", "卧龙凤雏", "落凤坡", "长坂坡");
logger.info(add.toString());
2.members(K key):获取key中的所有的值
Set<String> members = stringRedisTemplate.opsForSet().members(CommonConstant.TEST_SET);
members.forEach(r -> logger.info(r));
3.size(K key):获取set的长度
Long size = stringRedisTemplate.opsForSet().size(CommonConstant.TEST_SET);
logger.info(size.toString());
4.isMember(K key, Object o):检查给定的元素是否在set中
Boolean b = stringRedisTemplate.opsForSet().isMember(CommonConstant.TEST_SET, "温酒斩华雄");
logger.info(b.toString());
5.pop(K key):弹出变量中的元素
String pop = stringRedisTemplate.opsForSet().pop(CommonConstant.TEST_SET);
logger.info(pop);
6.randomMember(K key):随机获取变量中的元素
String s = stringRedisTemplate.opsForSet().randomMember(CommonConstant.TEST_SET);
logger.info(s);
7.randomMembers(K key, long count):随机获取变量中指定个数的元素。
List<String> list = stringRedisTemplate.opsForSet().randomMembers(CommonConstant.TEST_SET, 2);
list.forEach(r -> logger.info(r));
8.move(K key, Object... values):批量移除变量中的元素
Long l = stringRedisTemplate.opsForSet().remove(CommonConstant.TEST_SET, "三马同槽");
logger.info(l.toString());
9.move(K key, V value, K destKey):转移set的元素值到另一个set
Boolean b1 = stringRedisTemplate.opsForSet().move(CommonConstant.TEST_SET, "三马同槽", CommonConstant.TEST_SET_OTHER);
logger.info(b1.toString());
10.scan(K key, ScanOptions options):
匹配获取键值对,ScanOptions.NONE为获取全部键值对;ScanOptions.scanOptions().match("三英战吕布").build() 匹配获取键位"三英战吕布"的键值,不能模糊匹配。
Cursor<String> cursor = stringRedisTemplate.opsForSet().scan(CommonConstant.TEST_SET, ScanOptions.scanOptions().match("三英战吕布").build());
cursor.forEachRemaining(r -> logger.info(r));Long add2 = stringRedisTemplate.opsForSet().add(CommonConstant.TEST_SET_OTHER, "三英战吕布", "卧龙凤雏", "落凤坡", "张飞", "赵云");
11.difference(K key, K otherKey):求key与otherKey两个集合的差集
// 求的是TEST_SET与TEST_SET_DEST的差集,即TEST_SET有而TEST_SET_OTHER没有
Set<String> difference = stringRedisTemplate.opsForSet().difference(CommonConstant.TEST_SET, CommonConstant.TEST_SET_OTHER);
difference.forEach(r -> logger.info(r));
12.differenceAndStore(K key, K otherKey, K destKey)
// 将TEST_SET与TEST_SET_DEST的差集保存到TEST_SET_DEST
Long aLong = stringRedisTemplate.opsForSet().differenceAndStore(CommonConstant.TEST_SET, CommonConstant.TEST_SET_OTHER, CommonConstant.TEST_SET_DEST);
logger.info(aLong.toString());
13.difference(K key, Collection<K> otherKeys):后面的集合的元素是set的key
// 求的是TEST_SET与TEST_SET_DEST的差集,即TEST_SET有而TEST_SET_DEST没有
Set<String> difference2 = stringRedisTemplate.opsForSet().difference(CommonConstant.TEST_SET, Arrays.asList(CommonConstant.TEST_SET_DEST));
difference2.forEach(r -> logger.info(r));
14.intersect(K key, K otherKey):获取2个set中的交集
Set<String> intersect = stringRedisTemplate.opsForSet().intersect(CommonConstant.TEST_SET, CommonConstant.TEST_SET_DEST);
intersect.forEach(r -> logger.info(r));
15.union(K key, K otherKey):获取2个set中的并集
Set<String> union = stringRedisTemplate.opsForSet().union(CommonConstant.TEST_SET, CommonConstant.TEST_SET_DEST);
union.forEach(r -> logger.info(r));
交集与并集的其他方法同差集,故不再赘述!

五、操作ZSet类型

1.add(K key, V value, double score):添加元素到zset中同时指定元素的分值
Boolean b = stringRedisTemplate.opsForZSet().add(CommonConstant.TEST_ZSET, "铜雀台", System.currentTimeMillis());
stringRedisTemplate.opsForZSet().add(CommonConstant.TEST_ZSET, "洛神赋", System.currentTimeMillis() - 1000 * 258);
stringRedisTemplate.opsForZSet().add(CommonConstant.TEST_ZSET, "老骥伏枥", System.currentTimeMillis() + 666 * 2578);
stringRedisTemplate.opsForZSet().add(CommonConstant.TEST_ZSET, "志在千里", System.currentTimeMillis() - 258 * 698714);
2.range(K key, long start, long end):获取zset指定区间的元素,zset默认正序排列
// 获取下标0,1 志在千里 洛神赋
Set<String> range = stringRedisTemplate.opsForZSet().range(CommonConstant.TEST_ZSET, 0, 1);
range.forEach(r -> logger.info(r));
3.rangeByScore(K key, double min, double max):根据设置的score获取区间值
// 志在千里 洛神赋 铜雀台
Set<String> set = stringRedisTemplate.opsForZSet().rangeByScore(CommonConstant.TEST_ZSET, 0, System.currentTimeMillis());
set.forEach(r -> logger.info(r));
4.count(K key, double min, double max):获取区间值的个数
Long count = stringRedisTemplate.opsForZSet().count(CommonConstant.TEST_ZSET, 0, System.currentTimeMillis());
logger.info(count.toString());
5.rank(K key, Object o):获取变量中元素的索引,下标开始位置为0
Long l2 = stringRedisTemplate.opsForZSet().rank(CommonConstant.TEST_ZSET, "老骥伏枥");
// 3
logger.info(l2.toString());
6.(K key, ScanOptions options):匹配获取键值对,ScanOptions.NONE为获取全部键值对;ScanOptions.scanOptions().match("老骥伏枥").build()匹配获取键位"老骥伏枥"的键值对,不能模糊匹配。
Cursor<ZSetOperations.TypedTuple<String>> cursor = stringRedisTemplate.opsForZSet().scan(CommonConstant.TEST_ZSET, ScanOptions.scanOptions().match("老骥伏枥").build());
cursor.forEachRemaining(r -> logger.info(r.getScore() + r.getValue()));
7.zCard(K key):获取zset中元素的个数
Long aLong = stringRedisTemplate.opsForZSet().zCard(CommonConstant.TEST_ZSET);
logger.info(aLong.toString());
8.score(K key, Object o):获取元素的分值
Double d = stringRedisTemplate.opsForZSet().score(CommonConstant.TEST_ZSET, "洛神赋");
logger.info(d.toString());
9.incrementScore(K key, V value, double delta):修改zset中的元素的分值
// 返回的是加后的值
Double d1 = stringRedisTemplate.opsForZSet().incrementScore(CommonConstant.TEST_ZSET, "洛神赋", 100000);
logger.info(d1.toString());
10.reverseRange(K key, long start, long end):索引倒序排列指定区间元素
// 所有元素倒序排列
Set<String> set1 = stringRedisTemplate.opsForZSet().reverseRange(CommonConstant.TEST_ZSET, 0, -1);
set1.forEach(r -> logger.info(r));
11.reverseRangeByScore(K key, double min, double max):倒序排列指定分值区间元素
Set<String> set2 = stringRedisTemplate.opsForZSet().reverseRangeByScore(CommonConstant.TEST_ZSET, 0, System.currentTimeMillis());
set2.forEach(r -> logger.info(r));
12.reverseRangeByScore(K key, double min, double max, long offset, long count)
倒序排列从给定下标和给定长度分值区间元素
Set<String> set3 = stringRedisTemplate.opsForZSet().reverseRangeByScore(CommonConstant.TEST_ZSET, 0, System.currentTimeMillis(), 0, 2);
set3.forEach(r -> logger.info(r));
13.reverseRank(K key, Object o):获取倒序排列的索引值
Long ll = stringRedisTemplate.opsForZSet().reverseRank(CommonConstant.TEST_ZSET, "老骥伏枥");
logger.info(String.valueOf(ll));stringRedisTemplate.opsForZSet().add(CommonConstant.TEST_ZSET_OTHER, "老骥伏枥", System.currentTimeMillis());
stringRedisTemplate.opsForZSet().add(CommonConstant.TEST_ZSET_OTHER, "肤如凝脂", System.currentTimeMillis());
14.removeRange(K key, long start, long end):根据索引值移除区间元素
stringRedisTemplate.opsForZSet().removeRange(CommonConstant.TEST_ZSET_DEST, 0, -1);
15.intersectAndStore(K key, K otherKey, K destKey):将key和otherKey的交集存放到destKey里面
// 交集分值相加
Long aLong3 = stringRedisTemplate.opsForZSet().intersectAndStore(CommonConstant.TEST_ZSET, CommonConstant.TEST_ZSET_OTHER, CommonConstant.TEST_ZSET_DEST);
Set<String> range3 = stringRedisTemplate.opsForZSet().range(CommonConstant.TEST_ZSET_DEST, 0, -1);
range3.forEach(r -> logger.info(r));
Long aLong2 = stringRedisTemplate.opsForZSet().removeRange(CommonConstant.TEST_ZSET_DEST, 0, -1);
logger.info(aLong2.toString());
16.unionAndStore(K key, K otherKey, K destKey):将key和otherKey的并集存放到destKey里面
Long aLong1 = stringRedisTemplate.opsForZSet().unionAndStore(CommonConstant.TEST_ZSET, CommonConstant.TEST_ZSET_OTHER, CommonConstant.TEST_ZSET_DEST);
logger.info(aLong1.toString());
17.remove(K key, Object... values):根据元素值批量移除元素
stringRedisTemplate.opsForZSet().remove(CommonConstant.TEST_ZSET, "老骥伏枥");
18.removeRangeByScore(K key, double min, double max):根据分值移除区间元素
Long aLong4 = stringRedisTemplate.opsForZSet().removeRangeByScore(CommonConstant.TEST_ZSET, 0, System.currentTimeMillis());
logger.info(aLong4.toString());

RedisTemplate基础操作命令相关推荐

  1. mysql 删除时间一个星期_15天快速学习 数据库Mysql 基础操作命令(第一章)

    简言 你还在为不了解不会操作MySQL数据库而苦恼吗? 还为面对冗繁的数据不知怎么提取而愤懑吗? 分享快速学习MySQL及基础操作命令 那就利用闲暇时间和我一起掌握一门MySQL数据库语言操作吧! 入 ...

  2. git的简单理解及基础操作命令

    前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...

  3. linux系统10个最常用命令,Linux操作系统10条最常用的基础操作命令

    Linux操作系统10条最常用的基础操作命令 玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常 ...

  4. SpringBoot整合Redis 之 StringRedisTemplate、RedisTemplate 基础

    SpringBoot 整合 Redis 环境准备 引入依赖 配置文件 StringRedisTemplate 基本使用 Key 常用操作 String 常用操作 List 常用操作 Set 常用操作 ...

  5. Linux入门学习(1基础操作命令)

    一:Linux和Windows的区别 Linux的完全开源的,Windows是闭源的,所以Linux相对与Windows有更多的个人定制能力. Linux偏向于指令操作(图形界面为辅助),所以使得Li ...

  6. Linux入门学习(基础操作命令)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_41923771/article/ ...

  7. Mysql常用基础操作命令及数据操作命令一览

    一.MySQL关于表基础命令 1.1 表的创建 语法: create table if not exists 表名 ( 字段名 数据类型(null | not null,default | auto_ ...

  8. Frida基础操作命令

    Frida相关的基础操作,包含adb.frida.objection的基本命令. 1.ADB常用命令 # 查看当前连接设备 adb devices# 多个设备时指定设备 adb -s 设备号 其他指令 ...

  9. mysql 创建视图 主键_MySQL数据库基础操作命令,本文助你更上一层楼!

    今天介绍的是关于Mysql数据库一些操作的基础命令 用户与权限 创建用户 mysql>create user test identified by 'BaC321@#'; 修改密码 5.5版本及 ...

最新文章

  1. 微信小程序把玩(四)应用生命周期
  2. 灵活运用分布式锁解决数据重复插入问题
  3. python编程if语法-Python基本语法(if判断)
  4. CentOS下设置服务自动启动的方法
  5. LLBLGen 关于类型转换
  6. springboot page size过大导致内存溢出_Spring Boot 内存泄露怎么办呢?看这里看这里!!...
  7. 【MFC】工具栏按钮多选效果本
  8. 结对-人机对战象棋游戏-开发过程
  9. Java进阶:java字符串定位语句
  10. Android开发启动未注册的activity,Hook使用demo
  11. cnsl是什么意思_VS2010下创建静态链接库和动态链接库
  12. KMP算法NEXT数组纯手工生成
  13. 淘宝、飞猪、闲鱼都挂了,阿里云却正常?!
  14. Apache+php+mysql在windows下的安装与配置图解之apache篇
  15. (小白)系统盘制作(WPE工具箱)及镜像下载
  16. vs2010开发android教程,用Visual Studio 2010开发Android应用
  17. Linux word转pdf汉字乱码
  18. 网络工程专业大学生,需要考HICE吗?
  19. 禁用Google英文翻译功能
  20. 使用MQTTlens和Mosquitto在WIN7上完成发布和订阅

热门文章

  1. 吉大正元php,吉大正元CA认证服务器与客户端以及配置文档
  2. java自动饮料售卖
  3. HTTP和HTTPS的区别以及介绍讲解
  4. 服务器做bond的方法
  5. discuz二次开发常用技术手册代码
  6. 简单理解常量、常量池、运行时常量池和字符串常量池
  7. listview下拉刷新上拉加载扩展(二)-仿美团外卖
  8. 使用git 实现本地文件和远程代码仓的互相同步
  9. qml草地足球简单案例
  10. cocos creator实例--3D 足球